Vite团队采用Rust驱动的Rolldown实现构建速度提升10-30倍

Vite 8.0发布,采用Rust构建的Rolldown作为单一打包工具,取代esbuild和Rollup。Rolldown基于Oxc构建,兼容现有插件API,构建速度比Rollup快10-30倍。新版本还包括DevTools构建分析、WASM SSR支持等功能。该项目由Vue.js创始者尤雨溪创立的Void Zero公司赞助,旨在统一JavaScript生态系统工具链。

Vite 8.0 正式发布,它使用 Rust 构建的 Rolldown 作为单一打包器,同时取代了 esbuild 和 Rollup,从而实现更快的构建速度。

Vite 既是开发服务器,也是 TypeScript 和 JavaScript 应用程序的构建工具,支持热模块替换(HMR),可以在不重新加载整个页面的情况下更新代码,并通过插件添加特定框架功能等特性。Vite 可以与多种框架配合使用,根据 8.0 版本的介绍文章,目前每周下载量达到 6500 万次。

Rolldown 旨在与现有插件兼容,因为它支持相同的插件 API。虽然它包含在 Vite 8 中,但 Rolldown 项目仍处于候选发布状态,其压缩功能(通过最小变量名等策略将源代码压缩到最小尺寸)仍处于 alpha 阶段。

Rolldown 构建在同样使用 Rust 编写的 Oxc 之上。Oxc 是一个实用程序,其功能包括代码检查、格式化、解析、TypeScript 和 JSX(定义 React 元素的代码)转译、模块解析和压缩。

Rolldown 和 Oxc 都是由 Void Zero 赞助的开源项目。该公司由 Vite 和 Vue.js 框架的创建者 Evan You 于 2024 年创立。在公司成立时,You 表示需要统一的工具链来克服 JavaScript 生态系统的挑战:"碎片化、不兼容性和低效率"。

Vite 团队声称 Rolldown "比 Rollup 快 10-30 倍",并且与同样是原生代码但用 Go 编写的 esbuild 性能相当。

Vite 8.0 的其他新功能包括用于构建分析和调试的新 DevTools(前提是使用 Rolldown)、SSR(服务器端渲染)环境中的 Wasm 支持,以及将浏览器控制台日志转发到开发服务器终端。

未来计划包括完整打包模式,在开发和生产环境中都对模块进行打包。快速构建时间使这变得更加实用。团队表示:"初步结果显示开发服务器启动速度快 3 倍,完整重新加载快 40%,网络请求减少 10 倍。"

对 Vite 8.0 的早期反应是积极的,主要原因是构建时间更快。一位用户说:"我们在一个最大的项目上看到了从 12 分钟到 2 分钟的改进。"

Rolldown 并不是唯一用 Rust 重写构建工具的例子。其他例子包括由 Vercel 赞助、由 Webpack 发明者 Tobias Koppers 创建的 Turbopack 项目;以及字节跳动的 Rspack,它用 Rust 编写但与 Webpack 兼容。这三个工具都表现良好,不过根据当前基准测试,还不如用 Zig 构建的 Bun。Turbopack 的问题是与 Next.js 框架紧密集成,而 Rolldown 和 Vite 则受益于插件生态系统和广泛的框架支持。

TypeScript 项目也在即将发布的 TypeScript 7.0 中转向原生代码编译器(tsc),使用 Go 语言,微软的 Anders Hejlsberg(TypeScript 的发明者)声称性能提升超过 10 倍。

一个尴尬的问题是:如果使用原生代码工具为 TypeScript 和 JavaScript 项目带来如此大的好处,开发人员是否也应该重新考虑在浏览器外运行时为项目代码本身使用解释型语言?最受欢迎的 IDE Visual Studio Code 是用 TypeScript 编写的,使用 Electron 框架,但比 Zed 或 Notepad++ 等原生代码编辑器更慢,占用更多内存。

Q&A

Q1:Rolldown是什么?它有什么特点?

A:Rolldown是用Rust构建的打包器,旨在取代esbuild和Rollup成为Vite的单一打包器。它与现有插件兼容,支持相同的插件API,Vite团队声称其速度比Rollup快10-30倍,性能与esbuild相当。

Q2:Vite 8.0相比之前版本有哪些主要改进?

A:Vite 8.0的主要改进包括:使用Rust驱动的Rolldown实现10-30倍的构建速度提升,新增用于构建分析和调试的DevTools,支持SSR环境中的Wasm,以及将浏览器控制台日志转发到开发服务器终端等功能。

Q3:为什么越来越多的JavaScript工具选择用Rust重写?

A:使用Rust等原生代码重写工具能够显著提升性能。除了Rolldown,还有Turbopack、Rspack等项目都采用了类似策略。这些工具相比原来的JavaScript实现都有大幅度的性能提升,能够解决JavaScript生态系统中的碎片化、不兼容性和低效率问题。

来源:The Register

0赞

好文章,需要你的鼓励

2026

03/17

09:50

分享

点赞

邮件订阅