Vite 为什么比 Webpack 快?开发模式和生产模式有什么区别?
开发模式(no-bundle):Vite 利用浏览器原生 ESM,启动时不打包,按需对请求的文件用 esbuild(Go 写,比 JS 快 10-100x)即时转译。所以冷启动与改动都是毫秒级,与项目大小无关;而 Webpack 要先把整个依赖图打包完才能起服务。
生产模式:为兼容性与优化(如 Rollup 的成熟 Tree Shaking),Vite 仍用 Rollup 打包,并自动做代码分割、压缩、预构建依赖(optimizeDeps 用 esbuild 预打包 node_modules 成 ESM)。
开发:浏览器 ESM + esbuild 即时编译(快)
生产:Rollup 打包(成熟优化)对比 Webpack:Webpack 全程打包,项目越大越慢;Vite 解决了「启动慢/热更新慢」,但生态/插件成熟度 Webpack 仍占优。