Rolldown 简介
官网:rolldown.rs/
Rolldown 是一个用 Rust 编写的 JavaScript 打包器,旨在作为 Vite 未来使用的打包器。它提供与 Rollup 兼容的应用程序接口和插件接口,但在范围上更类似于 esbuild。
Rolldown 发展时间线
- 👏🏻 2023年10月05日,尤雨溪在 2023 ViteConf 大会上宣布将开发一个名为 Rolldown 的 Rollup 替代工具。
- 👏🏻 2023年12月31日,尤雨溪同步最新进展,Rolldown 原计划在今年开放代码库,但将推迟到 2024 年第一季度。
- 👏🏻 2024年03月08日,Rolldown 正式宣布开源 🎉🎉🎉,不到一天,Github star 数已到 2.5k。
Rolldown 主要特性
- 🦀 语言:用 Rust 编写
- ⚡️ 高性能:为 Vite 设计,目标为 Vite 提供超级快的构建速度。
- 🗞️ 兼容性:兼容 Rollup 的 API 接口和插件
- ⚓️ 解析器:使用 Oxc 作为解析器
为什么需要 Rolldown?
从官方文档了解到,Rolldown 的设计目的是作为未来 Vite 中使用的打包器。但目前 Vite 内部依赖两个捆绑程序,esbuild 主要用来依赖预捆绑、TypeScript / JSX 转换、目标降低和最小化,Rollup 主要用来生产构建使用,这也导致一些问题:
- 输出之间的细微差别会导致开发和生产构建之间的行为差异。
- 在整个生产构建过程中,用户源代码会被不同的工具反复解析、转换和序列化,从而导致大量可以避免的开销。
在理想情况下,开发团队希望 Vite 能利用单一的打包工具,提供原生级性能、避免解析/序列化开销的内置转换、与 Rollup 兼容的插件接口,以及适合大规模应用的高级构建输出控制。
这就是建设 Rolldown 的原因。
未来规划
Rolldown 由 Rust 编写,基于 Oxc 构建,目前正在使用其解析器。团队还计划在 Oxc 的转换器和压缩工具将来可用时进行集成。
团队的长期目标是让 Vite 用户(直接或间接通过框架)能够以最小的成本过渡到内部使用 Rolldown 的 Vite 版本。
同时,Rolldown 还将作为独立的打包器直接使用。
Rolldown 未来可期!