Rspack2.3正式发布,集成SWCNext编译器提升构建性能与内存效率
Rspack 2.3 版本已上线,核心升级为集成由 SWC 与 Rspack 团队联合开发的 SWC Next 解析器,显著提升 JavaScript 解析速度与内存效率;同时优化 SplitChun...
Rspack 2.3 已正式发布,作为当前主流 Rust 基础 Web 构建工具链的重要一环,本次更新聚焦于底层编译能力重构与资源效率优化。最核心的变化是全面集成 SWC Next——一款由 SWC 团队与 Rspack 所属公司 Rstack 联合研发的新一代 JavaScript 编译器模块,标志着 Rspack 在构建性能与可扩展性上迈入新阶段。
SWC Next 并非对现有 SWC 的简单迭代,而是采用全新架构设计:其解析器受 Yuku 启发,以扁平化 ESTree AST(抽象语法树)为核心,旨在平衡执行速度、内存占用与语言扩展能力。在基准测试中,SWC Next 的原生解析速度最高可达原版 SWC 的 3 倍;当通过 JavaScript API 调用时,性能优势更为显著,最高达 10 倍。
- three.js:解析耗时从 23 ms 降至 20 ms(−14%),指令数从 205 M 减至 155 M(−24%);
- React 10k:解析耗时从 207 ms 降至 193 ms(−6%),指令数从 1597 M 减至 1421 M(−11%)。
这一改进不仅加速单次构建,也为后续支持 JavaScript 编写的高性能 loader 插件奠定基础。目前,自定义代码转换主要依赖 Babel 插件或 SWC Wasm 插件,而 SWC Next 的扁平 AST 设计使 Rust 与 JavaScript 间高效数据交换成为可能。官方透露,预计在 Rspack 2.4 或 2.5 中将推出基于 SWC Next 的 loader 支持,允许开发者用 JS 编写插件,同时享受 Rust 层面的运行性能。
除解析层升级外,Rspack 2.3 显著强化了内存管理能力。在多 agent 并行开发场景下,多个构建进程与开发服务器共存易导致内存瓶颈。新版针对此问题进行系统性优化,实测显示某大型项目在关键指标上大幅下降:
- 构建峰值 RSS:28.3 GiB → 20.5 GiB(−27.4%);
- 构建结束 RSS:25.3 GiB → 16.1 GiB(−36.5%);
- 开发启动峰值 RSS:28.6 GiB → 19.0 GiB(−33.8%);
- 开发稳态 RSS:28.9 GiB → 18.8 GiB(−34.8%)。
此外,Rspack 2.3 新增基于 allocative 的内存快照功能,开发者可采集构建过程中的内存热点数据用于诊断。若项目存在异常高内存占用,官方提供诊断指南并承诺协助分析优化。
splitChunks.dedupDepth:启用后可识别不同入口间更多共享模块组合,默认生产模式下设为 1;splitChunks.minRemainingSize:避免拆分出过小文件,提升加载效率并保持与 webpack 行为兼容;- 模块去重逻辑优化:更充分复用已有模块,减少冗余代码。
实测数据显示,在两个大型真实项目中,启用 dedupDepth: 1 后 Brotli 压缩体积分别减少 2.4% 与 9.9%,对应节省 550 KB 与 4.0 MB。
缓存机制亦迎来革新。Rspack 2.3 推出实验性新版缓存实现,支持为 loader 单独缓存转换结果,避免重复处理相同输入。该设计提升了增量构建效率,尤其适用于含大量自定义 loader 的复杂工程。配合按代码内容过滤 loader 的新能力,开发者可更精细地控制哪些模块需重新转换,进一步提升构建确定性与可预测性。
内置 CSS 处理也得到小幅改进,包括更稳定的样式注入顺序与更精确的 scope 标识生成,减少因 CSS 模块化引发的运行时冲突。
生态层面,Rspack 2.3 与 Rsbuild、Rslib、Rsdoctor、Rstest、Rspress 等周边工具链同步更新,确保整体开发体验一致性。其中 Rsdoctor 提供更细粒度的构建诊断能力,Rspress 则强化了静态站点生成中的资源优化路径。
需要指出的是,尽管 SWC Next 性能亮眼,其全面替代仍处渐进过程。当前仅 JavaScript 解析器完成迁移,其余模块如转换器、代码生成器等仍在逐步过渡中。官方强调,此次更新目标并非一次性替换全部组件,而是以最小风险验证新架构可行性,并为后续扩展预留接口。
从行业视角看,Rspack 与 SWC 的深度协同反映了现代前端工具链的演进趋势:从“功能完备”转向“性能优先 + 可扩展性强”。过去五年,Vite、esbuild、Rspack 等工具相继崛起,核心驱动力正是对 Webpack 构建慢、内存高、插件体系臃肿等问题的回应。而 SWC Next 的出现,进一步模糊了“编译器内核”与“插件平台”的边界——未来开发者或可在 JS 层编写接近原生性能的转换逻辑,无需深入 Rust 底层。
值得注意的是,Rspack 的技术路线与 Webpack 4–5 的渐进式现代化形成对照:前者选择彻底重构底层(Rust + 新 AST),后者则通过持久化缓存、模块联邦等策略延长生命周期。两种路径各有适用场景:超大型应用仍倾向 Webpack 的成熟生态;而追求极致构建速度与低资源占用的新兴项目,则更易接纳 Rspack 这类新锐方案。
目前,Rspack 2.3 已开放下载,用户可通过 npm 或 pnpm 安装。官方建议在升级前评估项目对 loader 缓存行为的依赖,并参考迁移指南处理潜在兼容性变更。实验性缓存功能默认关闭,需手动启用以参与早期反馈。
随着 SWC Next 模块持续整合,Rspack 下一阶段重点将落在 loader 插件系统与增量构建稳定性上。对于前端工程化团队而言,此次更新不仅是性能数字的提升,更是构建体系向“可编程、可诊断、可扩展”方向迈出的关键一步。
