本文来自 voidzero.dev/posts/annou...
Rolldown 驱动的 Vite:现在即可尝试!
TL;DR
立即尝试由 Rolldown 驱动的 Vite,只需将项目中的
vite
替换为rolldown-vite
包即可。它是完全可替代的替代方案,未来 Rolldown 将成为 Vite 的默认打包器。尤其在大型项目中切换后可显著减少构建时间。欢迎联系我们了解实际生产场景!
背景介绍
过去一年中,我们一直在开发 Rolldown ------ 一个基于 Rust 的下一代打包器,这是现代化 Vite 核心的更大计划的一部分。
除了 Rolldown,我们还开发了 Oxc,一套高性能 JavaScript 工具集,包括:
- 解析器(Parser)
- 转换器(Transformer)
- 解析器(Resolver)
- 压缩器(Minifier)
- Linter(已上线)
- Formatter(即将推出)
Oxc 是 Rolldown 的基础组件,负责高效处理 JavaScript 和 TypeScript。
功能已对齐,立即试用
我们很高兴地宣布:由 Rolldown 驱动的 Vite 已实现与现有 Vite 初步的功能对齐。你现在就可以像往常一样替换使用,并享受技术预览版带来的性能提升。
在早期用户的帮助下,我们已在各种项目中(从简单项目到企业级应用)测试 rolldown-vite
。结果令人惊叹:
- 构建时间加速 3x 到 16x
- 构建内存消耗最多减少 100x
详见下方的 "实际效果" 一节。
快速开始
在已有 Vite 项目中,只需在 package.json
中通过别名替换:
perl
{
"dependencies": {
"vite": "npm:rolldown-vite@latest"
}
}
如果你使用的是 VitePress 或其他以 Vite 作为 peer 依赖的元框架,可以使用覆盖配置:
perl
{
"overrides": {
"vite": "npm:rolldown-vite@latest"
}
}
支持工具:npm
、pnpm
、yarn
、bun
替换后,你可以像平常一样使用 Vite,同时享受 Rolldown 带来的构建性能提升。
为什么是单独包发布?
Rolldown 当前通过 rolldown-vite
独立包发布:
- 快速迭代开发
- 收集反馈与问题
- 不影响现有用户稳定性
一旦稳定,相关改动将合并进 Vite 主包,rolldown-vite
将被弃用。
注意:
- 主版本号、次版本号 与 Vite 保持一致
- 补丁版本可能包含破坏性变更(开发仍在进行中)
查看变更日志获取最新信息。
兼容性保证
兼容性是我们首要任务。
我们:
- 基于 Vite 生态系统的 CI 创建了分支
- 在
rolldown-vite
上运行测试 - 绝大多数框架与插件已通过测试
注意:
- 个别框架/高级用例仍可能存在兼容性差异
- 强烈建议查阅 Rolldown 迁移指南
如遇问题,请提交 Issue,以帮助我们优化整个生态。
不再需要 esbuild!
目前稳定版 Vite 依赖 esbuild
进行:
- 转换与压缩生产构建代码
- 开发服务器部分功能
但在 rolldown-vite
中:
- 所有转换和压缩操作由 Oxc 完成
- 构建性能更优
- 不再需要额外安装 esbuild(除非某些插件仍依赖)
我们正在与插件/框架作者合作,使其支持 Oxc。
插件作者请注意
无论你是 Vite 还是 Rollup 插件作者,现在就可以开始测试你的插件:
- 多数插件可直接兼容
- 少部分插件需做兼容性/性能调整
查看插件作者指南了解详情。
实际效果案例
尽管 rolldown-vite
仍处开发阶段,但已有多个真实项目获得显著提速:
项目/公司 | 构建时间对比 | 内存使用 |
---|---|---|
GitLab | 2.5 分 → 40 秒 | 内存降低 100x |
Excalidraw | 22.9 秒 → 1.4 秒(提升 16 倍) | --- |
PLAID Inc. | 80 秒 → 5 秒(提升 16 倍) | --- |
Appwrite | 12 分钟+ → 3 分钟 | 内存降低 4 倍 |
Particl | 1 分钟+ → 6 秒(Vite 提升 10x;对比 Next.js 提升 29x) | --- |
更多信息与案例详见仓库:vitejs/rolldown-vite-perf-wins
趣闻:你正在阅读的这篇博客正是由 VitePress + Rolldown 构建,仅用 1.8 秒完成生产构建(部署在 Netlify)。
下一步计划
Vite 以其原生 ESM 非打包开发服务器著称,带来极快的启动与反馈体验。
但这种模式在 大型/企业级项目 中存在一定局限。
为此我们正在开发 开发服务器的完整打包模式,目标:
- 保持中小项目启动速度
- 大幅提升大型项目的开发体验
同时,我们还将持续将 Vite 核心"Rust 化",以减少通信开销并提升整体性能。
Rolldown 集成路线图
阶段 | 说明 |
---|---|
第一阶段(当前) | 发布 rolldown-vite 独立包供早期用户试用与反馈。 |
第二阶段 | 稳定后将合并进 Vite 主仓库,并新增可选的开发全打包模式,rolldown-vite 将弃用。 |
第三阶段 | 全打包模式成为 Vite 默认行为。 |
我们预计每阶段持续数月,具体节奏取决于:
- 社区反馈
- 实际使用情况
- 稳定性与兼容性表现
快来试试!
我们鼓励你 现在就尝试 rolldown-vite
并给予反馈!
如遇任何问题(功能缺失、错误提示不明确、性能下降等),请在 rolldown-vite 仓库 提交,而非主仓库。
若你希望实时讨论问题,欢迎加入 Rolldown Discord 社区!
如需我将此内容继续转为中文博客模板或添加使用截图示意,请告诉我。