Vite 8 用 Rolldown 换掉 esbuild + Rollup:vite.config.ts 一行不用改,但插件得重测
Vite 8.0 于 2026-03-12 发布。这一版最直接的变化是默认打包器从 esbuild + Rollup 换成 Rolldown——VoidZero 用 Rust 写的打包器,针对 Vite 的使用场景设计。Rolldown 现在是默认项,没有 opt-in 开关,装上升级就是它。
相关链接:
- Vite 官方发布说明:
- Rolldown 与 Vite 8 变化解读:
- VoidZero 月报:
发布节奏
发布由 saphi-red 与 Vite 团队带头,Rolldown 团队协作完成。2025-12 先发 Vite 8 beta,beta 期间 Rolldown 从 beta 走到 RC,靠 rolldown-vite 预览版与 Vite 社区反馈推动。也就是说,默认打包器这件事不是在 8.0 当天突然切过去的,前面有一轮预览版铺路。
对 Vue 项目意味着什么
vite.config.ts 不需要改,@vitejs/plugin-vue 的用法也不变:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
plugins: [vue()],
});
配置层面几乎无感,风险集中在插件上:原来依赖 Rollup 特定 hook 的插件,可能要重新测一遍。这类插件通常不显眼——自定义构建插件、vite-plugin-* 里直接调 rollup 内部 API 的实现,都属于要重点看的部分。
生态里已经动起来的部分
- unpkg / 社区在用 Rolldown 的 import map 特性。
- Node.js 新 API 文档也迁到了 Rolldown。
- TresJS 用 tsdown 完成迁移,并分享了迁移结果。
- 收益方面:beta / preview 阶段,多家公司报告生产构建时间有可测量的下降。
周边工具链也在同步推进。VoidZero 这边有 Vite Task、Vite+;社区提出用 tsgo、oxlint、oxfmt 把反馈循环压到亚 100ms。
升级建议
升级本身不复杂,但验证要分几步走:
- 先在分支上把 vite 升到 8,不要直接动主干。
- 跑一遍完整构建,尤其是依赖较多的页面。
- 检查自定义 Rollup 插件,以及
vite-plugin-*里对 rollup 内部 API 的调用。 - dev 模式与 build 模式分别验证,不要只跑其中一个就下结论。
配置不用改是好事,但「不用改配置」不等于「不用验证」。打包器换了实现,构建产物、插件行为、边界场景都得自己跑一遍才算数。