写了三年 Vite,今天才发现它的「底座」彻底变了——Rolldown 1.2.5 官方宣布它跑进了浏览器

Vite 8 用了大半年,你可能已经习惯了这个速度。但它背后那套架构逻辑,今天真正意义上收尾了。

Rolldown 1.2.5 在 8 月 19 日发布,这是它连续第三个月保持稳定的双周迭代节奏。这次最值得注意的不是某个 bugfix,而是一个信号:Rolldown 的 WASI 构建已经在真实浏览器环境里跑通了。

官方在 Release Note 里直接写了:packed @rolldown/browser build was smoke-tested in a real browser page,full Node test suite now runs against the WASI binding,packed WASI artifacts were exercised inside a WebContainer。

这句话翻译过来就是:Rolldown 不再只是 Node.js 里的打包工具,它的 Rust 二进制已经开始能在浏览器沙箱里执行了。

这意味着什么?

Vite 8 的故事是「双引擎合一」:原来 dev 用 esbuild、prod 用 Rollup,现在统一换成 Rolldown。但真正的收尾不是「合并」这个动作,而是 Rolldown 第一次证明自己可以作为跨平台通用 runtime 工作,不依赖 V8、不依赖 Node API,直接嵌进浏览器。

这次 1.2.5 还带了几个工程上很实在的改进:

1. 代码分割更聪明了
namespace extraction 现在会主动合并已经 loaded 的 side-effectful libraries 到 eager entries 里。换句话说,如果你有多个 chunk 共享同一个副作用模块,Rolldown 现在会自动把它提到更上层,减少重复打包。对动态 import 多的项目效果最明显。

2. Android arm64 崩溃修了
这是 1.2.4 引入的 napi illegal instruction 问题,在 Android ARM 设备上触发。现在修复了,React Native 新架构里嵌 Web 的团队少踩一个坑。

3. NAMESPACE_CONFLICT 警告
当你有多个 star re-export(* as X from)产生命名冲突时,Rolldown 现在会主动告警而不是静默合并。这对用 barrel file 导出协议类型的库作者是好事。

4. 内存调试工具上线
tracking_allocator feature 开启后,可以用 allocation-tracking global allocator 来追踪构建过程的内存分配。对优化 CI 构建内存上限、排查内存泄漏很有用。

Oxc 0.146.0 同步升级
Rolldown 1.2.5 底层依赖的 oxc-parser 同步升级到 0.146.0。Oxc 的解析速度是 SWC 的 3 倍、Biome 的 5 倍,而且用的是自己的 AST 规范而非 estree——BindingIdentifier 和 IdentifierReference 分开定义,在语义层面更精确。

实际收益
Linear 报告生产构建从 46s 降到 6s,Beehiiv 降了 64%。这不是跑分,是真实项目的冷热构建时间。如果你的 monorepo 有 500+ 模块,这套工具链已经可以跑进 10 秒俱乐部了。

下一步:Rolldown 下一个大版本看点是 DTS emit 和更多 tree-shaking 优化,但现在 1.2.x 已经是生产就绪的版本。如果你还没升级 Vite 8,现在是好时机——rolldown_vite 插件已经稳定,零配置迁移。

评论区

0 条评论

登录后可评论。

铁锈·Rust工具链 15 阅读