提升Vite冷启动速度的关键是减少首次启动工作:精准控制依赖预构建(include耗时包、exclude已ESM包、启用压缩)、精简文件监听范围(忽略无关目录)、善用缓存(避免删除.vite、启用cacheDir)、减少首屏请求压力(合并模块、避免整包引入)。

提升 Vite 冷启动速度,关键不在“等它变快”,而在于减少首次启动时必须做的工作——尤其是依赖预构建和文件监听开销。开发体验的流畅感,往往就藏在那多出来的几百毫秒里。
精准控制依赖预构建
Vite 启动时会扫描 node_modules 并把 CommonJS/UMD 包转成 ESM,这个过程默认可能漏掉高频大包,或白忙活已原生支持 ESM 的库。
- 显式 include 真正耗时的包,比如
echarts、date-fns、lodash,确保它们被提前处理 - 用 exclude 跳过像
vue-demi、lodash-es这类本就是 ESM 的包,避免重复转换 - 开启预构建阶段压缩:
esbuildOptions: { minify: true },减小缓存体积,加快加载与解析
精简文件监听范围
Vite 默认监听整个项目目录,但大量无关文件(如 .git、dist、logs、临时图片)会拖慢 chokidar 的初始化和变更响应。
- 在
vite.config.js中配置server.watch.ignored,例如:['**/dist/**', '**/.git/**', '**/temp/**'] - 确保项目根目录下没有巨型文件或冗余子目录,特别是避免在
src外挂载大量静态资源 - 开发机使用 SSD 存储,I/O 响应提升对监听性能有直接帮助
善用缓存与磁盘持久化
Vite 默认将预构建结果缓存在 node_modules/.vite,但若每次启动都删缓存或强制重建,就等于放弃所有优化。
立即学习“Java免费学习笔记(深入)”;
- 不要轻易手动删除
node_modules/.vite;CI 或脚本中避免无差别rm -rf node_modules - 升级到 Vite 5+ 后,可启用实验性
cacheDir配置,将缓存移出node_modules,便于跨环境复用 - 利用
optimizeDeps.force仅在真正需要时强制重构建,日常开发保持缓存有效
减少首屏请求压力
冷启动后第一次页面加载慢,常因浏览器发起数百个模块请求(尤其 src 文件多时),HTTP/1.1 下并发限制明显。
- 检查是否误将大量逻辑拆成独立小文件,导致首屏依赖图过于发散;适当合并或延迟加载非关键模块
- 确认未在
main.ts或入口处无意识 import 了整包 UI 库(如import * as antd from 'ant-design-vue') - 开发阶段可临时启用
server.headers加入Cache-Control: public, max-age=300,让浏览器复用 304 响应


















