Webpack dev server 启动慢的根源:先全量打包成 bundle 再启动服务器,项目越大越慢。Vite(尤雨溪 2020)开发期完全绕开打包:服务器收到模块请求才按需编译,浏览器用原生 ESM import 直接加载——无论项目多大,冷启动都在几百毫秒。
dev 与 build 用两套引擎:dev 用 esbuild(Go 写的,预构建依赖极快)做按需转译;build 用 Rollup 做成熟打包(配合 esbuild 压缩)。Vite 是 Vue 官方推荐,但 React(@vitejs/plugin-react)、Svelte 等生态同样完备,已成新项目首选脚手架。
<!-- vite.config.js --> import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [vue()], // 框架支持是插件机制 resolve: { alias: { '@': '/src' } }, server: { port: 3000, proxy: { // dev 代理接口 '/api': { target: 'http://localhost:8080', changeOrigin: true }, }}, build: { sourcemap: true, rollupOptions: { output: { manualChunks: { // 手动分包 vendor: ['vue', 'axios'], }, }, }, }, }); <!-- dev 期为什么快:浏览器直接 import 远程模块 --> <!-- <script type="module" src="/src/main.js"></script> --> <!-- main.js 里的 import '/foo.vue' 请求一次,Vite 现编译现返回 -->