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