Vite8来啦,告别 esbuild + Rollup,Vite 8 统一用 Rolldown 了
![]()
用 Vite 做项目的应该都有感觉:开发体验一直很顺,但生产构建这块,项目一大就开始拉胯。
问题出在 Vite 的双引擎架构——开发用 esbuild,生产用 Rollup。两套东西,行为不一致,偶尔还会出现"本地没问题,构建就炸"的玄学 bug。
12 月 3 号,Vite 8 Beta 发布了,底层换成了 Rolldown。我第一时间把手上的项目升级了,踩了几个坑,这里记录一下。
Rolldown 是什么
简单说:一个 Rust 写的打包器,目标是同时替代 esbuild 和 Rollup。
尤雨溪的 VoidZero 团队搞的,拿了 1700 多万美金融资。整个工具链是这样的:
- Vite(构建工具)
- Rolldown(打包器)
- Oxc(编译器、压缩器)
三个项目同一个团队维护,行为一致性有保障。
Rolldown 和 esbuild 速度差不多,比 Rollup 快 10-30 倍。尤雨溪自己测 Vue 核心代码的打包,Rolldown 比 Rollup 快 7 倍,比 esbuild 还快将近 2 倍。
真实项目数据
看看早期用户的反馈:
| 项目 | 构建时间变化 | 提升倍数 |
|---|---|---|
| Linear | 46s → 6s | 7.6x |
| Excalidraw | 22.9s → 1.4s | 16x |
| GitLab | 2.5min → 40s | 3.75x |
| Beehiiv | - | 64% 更快 |
GitLab 还有个离谱的数据:内存占用降了 100 倍。
升级步骤
升级本身不复杂:
pnpm add -D vite@8.0.0-beta.0 @vitejs/plugin-vue@latest
Node.js 版本要求 20.19+ 或 22.12+,18 不支持了。
装完大概率能跑,但如果你用了 manualChunks,会遇到问题。
踩坑:manualChunks 不能用了
我的项目之前用对象形式配置 chunk 分割:
// 旧写法,Vite 8 直接报错
rollupOptions: {
output: {
manualChunks: {
'vue-vendor': ['vue', 'pinia'],
'monaco': ['monaco-editor'],
}
}
}
跑构建直接炸:TypeError: manualChunks is not a function
Rolldown 不支持对象形式的 manualChunks,得改成 advancedChunks:
// 新写法
rollupOptions: {
output: {
advancedChunks: {
groups: [
{ name: 'vue-vendor', test: /[\\/]node_modules[\\/](vue|pinia)[\\/]/ },
{ name: 'monaco', test: /[\\/]node_modules[\\/]monaco-editor[\\/]/ },
]
}
}
}
用正则匹配模块路径,比之前的数组形式更灵活,但迁移需要手动改一遍。
其他变化
配置项重命名
build.rollupOptions 以后要改成 build.rolldownOptions,目前还兼容但会有警告。
CSS 压缩
默认从 esbuild 换成了 Lightning CSS。想换回去可以设置 build.cssMinify: 'esbuild'。
JS 压缩
从 esbuild 换成了 Oxc Minifier。
插件兼容性
大部分 Vite 插件直接能用。少数依赖 esbuild 特定选项的需要适配。
开发服务器
开发服务器启动速度没太大变化,本来就快。
但后面会有个 Full Bundle Mode,开发阶段也打包。官方初步数据:
- 启动快 3 倍
- 热更新快 40%
- 网络请求少 10 倍
大型项目福音,不过目前还没正式发布。
要不要升
我的建议:
现在可以升的:
- 个人项目、实验性项目
- 构建时间已经成为痛点的大型项目
- 愿意踩坑反馈问题的
等等再升的:
- 生产环境稳定性优先的项目
- 依赖大量 Rollup 特定配置的
- 等正式版发布(估计一两个月内)
顺手推几个开源项目
既然聊到 Vite 和前端工具链,推一下我做的几个开源项目:
chat_edit - 双模式 AI 应用,聊天 + 富文本编辑整合在一起。技术栈刚升级到 Vue 3.5 + TypeScript + Vite 8,可以作为 Vite 8 实战参考。自己配置 API key 就能部署,支持导出 PDF、DOCX、Markdown。
code-review-skill - Claude Code 的代码审查技能,覆盖 React 19、Vue 3、Rust、TypeScript 等主流技术栈。采用按需加载设计,审查 React 代码时只加载 React 相关规则,不浪费 token。大概 9000 行最佳实践。
5-whys-skill - "5 个为什么"根因分析技能。遇到 bug 或者系统问题时,说"找根因"就能自动激活,输出结构化的分析报告。排查问题挺好用的。
first-principles-skill - 第一性原理思考技能,适合架构设计和技术方案选型。不是套模板,是真的帮你拆解问题本质。
感兴趣的可以去 GitHub 看看。