编程 Vite 8.0 发布:Rolldown 成为唯一打包器,Linear 生产构建 46s 降到 6s

2026-09-25 21:02:18

Vite 8.0 发布:Rolldown 成为唯一打包器,Linear 生产构建 46s 降到 6s

Vite 8.0 于 2026-03-12 发布。这一版把 Rolldown 作为唯一的、基于 Rust 的打包器,构建速度提升 10-30 倍,同时保持插件兼容。这是 Vite 2 以来最大的一次架构调整。

  • 官网与文档:
  • 迁移指南:
  • 插件 registry:
  • 在线试用:

问题:两套打包器

从最早的版本起,Vite 一直依赖两个打包器。esbuild 负责开发期的快速编译(依赖预打包、TypeScript/JSX 转换);Rollup 负责生产打包、chunk 拆分与优化,其插件 API 支撑起了整个 Vite 插件生态。

代价是两条独立的转换管线:两套插件系统、中间的胶水代码,以及模块处理行为不一致。

Rolldown 的三个目标

Rolldown 由 VoidZero 团队用 Rust 实现,目标有三个:

  • 性能:比 Rollup 快 10-30 倍,与 esbuild 相当。
  • 兼容:支持与 Rollup、Vite 相同的插件 API,多数现有 Vite 插件可直接使用。
  • 高级特性:full bundle mode、更灵活的 chunk 拆分、模块级持久缓存、Module Federation 支持。

上线路径

Rolldown 先以独立的 rolldown-vite 包作为技术预览发布;2025 年 12 月的 Vite 8 beta 将其完整集成进来。

真实项目构建耗时

  • Linear:生产构建 46s → 6s
  • Ramp:减少 57%
  • Mercedes-Benz.io:最多减少 38%
  • Beehiiv:减少 64%

统一的工具链

Vite(构建工具)+ Rolldown(打包器)+ Oxc(编译器)。

Node.js 版本要求

Vite 8 要求 Node.js 20.19+ 和 22.12+,与 Vite 7 一致。这些版本范围保证 Node 无需 flag 即可支持 require(esm),因此 Vite 可以只以 ESM 形式分发。

其他特性

  • 集成 Devtools:devtools 选项启用 Vite Devtools。
  • 内置 tsconfig paths 支持:resolve.tsconfigPaths = true,有少量性能开销,默认关闭。
  • emitDecoratorMetadata:内置支持。
  • Wasm SSR 支持:.wasm?init 导入现在可以在 SSR 中使用。
  • 浏览器 console 转发:server.forwardConsole,检测到 coding agent 时自动激活。

@vitejs/plugin-react v6

v6 使用 Oxc 做 React Refresh 转换,不再依赖 Babel。reactCompilerPreset helper 与 @rolldown/plugin-babel 配合使用。v5 仍然可以在 Vite 8 上工作。

后续计划

  • Full Bundle Mode(实验性):在开发期把模块打包。初步结果:dev server 启动快 3 倍,full reload 快 40%,网络请求少 10 倍。
  • Raw AST 传输。
  • 原生 MagicString 转换。
  • 稳定 Environment API。

安装体积

Vite 8 比 Vite 7 大约多 15MB。其中约 10MB 来自 lightningcss(现在是普通依赖),约 5MB 来自 Rolldown 二进制。

迁移到 Vite 8

兼容层会把 esbuild 和 rollupOptions 配置自动转换为等价的 Rolldown/Oxc 配置,不少项目无需改动配置即可运行。

对较大的项目,可以走渐进路径:先在 Vite 7 上把 vite 换成 rolldown-vite,把 Rolldown 相关问题隔离出来,再升级到 Vite 8。

迁移细节见 ,Changelog 在 GitHub。新建项目:

pnpm create vite
复制全文 生成海报 Vite Rolldown 前端 构建工具 Vue

推荐文章

程序员茄子在线接单