首先在说vite之前,我们看下ESM,目前大多数浏览器已经支持ESM,只需要在script中加入type="module",就可以使用ESM了。
当浏览器遇到import的时候,会自动发器http请求,加载对应的模块
vite开发环境依赖esbuild进行预构建,生产环境则依赖rollup进行打包,并且充分利用了现代浏览器的特性,比如http2、ES module,vite是站在众多巨人肩膀上的一个产物
首先vite将程序分为源码和依赖两类,改进了启动时间,本身使用的ESM技术
vite 项目中监听到文件变更=>websocket通知浏览器重新请求=>只对该模块编译并基于ESM,利用HTTP缓存机制进行处理