Vite 8发布:全面转向 Rust 驱动的 Rolldown,速度提升可达30倍
Vite 8 Beta 刚刚发布。这次更新没有堆砌一堆新功能,而是做了一次彻底的大手术——Vite 把原来由 esbuild 和 Rollup 组合而成的构建链路,全部换成了用 Rust 语言写的 Rolldown。
这意味着:Vite 的构建工具链,第一次真正实现了完全统一。
为什么要换 Rolldown?
过去 Vite 快,主要靠 esbuild 在转译(开发阶段)上的速度优势,但最终的打包工作,还是得交给 Rollup 来完成。
这套“双引擎”架构,在实际使用中暴露了不少问题:
两套插件体系:esbuild 和 Rollup 的插件 api 不一致,社区维护插件很麻烦
性能瓶颈:Rollup 基于 JavaScript,在大型项目打包时成了速度瓶颈
行为不一致:开发模式(dev)和构建模式(build)的某些行为不完全一样,复杂项目里更容易出问题
Rolldown 的出现,就是为了解决这些从 Vite 早期版本就存在的结构性问题。
官方给出的最直接好处就是——速度。
用 Rolldown 打包,速度比原来用 Rollup 快 10到30倍。对大型项目来说,这种提升是跨越式的。
Rolldown 带来了什么?
除了速度上的飞跃,Rolldown 还带来了几个社区期待已久的功能:
更灵活的代码分包策略:对多页面应用、组件库、服务端渲染(SSR)项目更友好
模块级持久缓存:冷启动和全量构建的速度都有明显提升
更强的可扩展性:官方已经在开发 Full Bundle 模式,未来开发服务器的速度还能再提升
你可以把 Rolldown 理解为:它是为 Vite 量身定做的现代化 Rollup,但在速度和扩展性上,已经不在一个水平了。
Vite 8 还有哪些更新?
虽然底层换引擎是重点,但 Vite 8 Beta 也顺带提升了不少日常开发体验:
支持 tsconfig.paths:可以更方便地配置 TypeScript 路径别名(可选)
支持 emitDecoratorMetadata:更好地支持使用装饰器的项目
Full Bundle 开发模式正在开发中:这种模式能减少浏览器请求数量,提升热更新(HMR)效率
对于大量使用 TypeScript 的团队来说,这些改进很实用。
升级建议
对大多数项目来说,这次升级属于“投入小,回报高”。
官方建议采用渐进式迁移:
在现有的项目中,先用 rolldown-vite 插件试试
如果构建过程正常,所有插件也都能工作,再升级到 Vite 8 Beta
Rolldown 内置了兼容层,大部分的 Rollup 插件应该都能直接运行,迁移成本不会太高。
要不要现在升级?
如果你正在维护一个中大型项目,并且一直对构建速度不满意,那么 Vite 8 绝对值得立刻尝试一下。性能的提升是能立刻感受到的。
如果你的项目现在非常稳定,也可以等正式版发布。但至少可以先在本地项目中测试一下 Rolldown,亲自体验一下它带来的“速度差距”。
实际测试数据
根据早期测试,一个包含约1000个模块的中型项目,构建时间从原来的约45秒,缩短到了约18秒。一个大型组件库的打包时间,则从近3分钟,减少到了约40秒。
可能遇到的问题
虽然迁移总体平滑,但有几个地方需要注意:
部分插件可能需要调整:一些高度依赖 Rollup 内部 API 的插件可能需要更新
构建产物可能略有差异:新的分包策略可能导致输出的文件结构有些变化,但功能应该一致
内存使用情况变化:Rust 程序的内存管理方式不同,可能需要观察一下
对生态的影响
这次底层更换,对整个前端生态也有影响:
插件开发者:未来为 Vite 开发插件会更统一,不用再考虑两套 API
框架维护者:基于 Vite 的框架(如 Nuxt、SvelteKit)也能获得免费的性能提升
工具链统一:前端工具链向 Rust 迁移的趋势更明显了
总结
Vite 8 的这次更新,不是一次简单的版本迭代,而是一次重要的架构演进。它解决了 Vite 长期存在的内部不一致问题,为未来的性能优化和功能扩展打下了更好的基础。
对于开发者来说,最直观的感受就是“更快了”。对于项目维护者来说,这意味着更统一的插件生态和更可预测的构建行为。
Vite 正在从一个“开发服务器很快”的工具,成长为一个“从头到尾都很快”的完整构建解决方案。这次更新让我们看到了前端工具链持续进化的方向:更统一、更快速、更高效。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!