- 开发环境区别
-
vite 自己实现 server,不对代码打包,充分利用浏览器对
<script type=module>
的支持- 假设 main.js 引入了 vue
- 该 server 会把
import { createApp } from 'vue'
改为import { createApp } from "/node_modules/.vite/vue.js"
这样浏览器就知道去哪里找 vue.js 了
-
webpack-dev-server 常使用 babel-loader 基于内存打包,比 vite 慢很多很多很多
- 该 server 会把 vue.js 的代码(递归地)打包进 main.js
-
- 生产环境区别
- vite 使用 *rollup *+ *esbuild *来打包 JS 代码
- *webpack *使用 *babel *来打包 JS 代码,比 esbuild(Go语言编写的) 慢很多很多很多
- webpack 能使用 esbuild 吗?可以,你要自己配置(很麻烦)。
- 文件处理时机
- vite 只会在你请求某个文件的时候处理该文件
- webpack 会提前打包好 main.js,等你请求的时候直接输出打包好的 JS 给你
目前已知 vite 的缺点有:
- 热更新常常失败,原因不清楚
- 有些功能 rollup 不支持,需要自己写 rollup 插件
- 不支持非现代浏览器