比谁快?
显然是比webpack更快
快在哪里?
主要有两方面:
- 快速的冷启动
- 快速的热更新
两者的主要不同之处
在于处理文件之间的引入关系
- webpack:将各种文件解析并编译完成后,再丢给浏览器,浏览器会得到完全处理好的文件,然后直接执行,不需要做额外的工作
- vite:直接启动,丢给浏览器一个处理好的初始入口文件,然后由浏览器去解析入口文件,发现有需要的文件,再向vite请求,vite再将该文件处理后送给浏览器,如此解析文件,直至浏览器当前的工作完成
Vite做了什么?
Vite之所以更快,主要得益于其独特的开发服务器和文件监听机制。首先,Vite利用了新版本浏览器可以读懂的ESM(ECMAScript Modules)模块化语法特点,在开发环境下,将项目中的模块化引入统一以一个接一个的http请求的方式响应给浏览器。这种做法省去了Webpack构建过程中递归做依赖收集的耗时步骤,显著提高了构建速度。