前端构建领域的“速度狂魔” Rspack 又更新了!
前两天,Rspack 团队正式发布了Rspack 1.7。作为 1.x 系列的最后一个 minor 版本,这次更新不仅带来了备受期待的Lazy Compilation(按需编译)默认开启,还解决了一个长期困扰开发者的痛点——SWC 插件兼容性。
与此同时,Rstack 生态全桶(Rsbuild, Rsdoctor, Rslib, Rstest, Rspress)也同步迎来了重大升级。特别是 Rspress 2.0 RC 推出的SSG-MD特性,竟然能直接生成给 AI 看的文档,这操作属实走在了时代前沿。
以下是本次更新的核心看点。
1. Lazy Compilation,大项目的“启动加速器”
在大型前端项目中,启动开发服务器往往是一个漫长的过程,因为构建工具需要处理成千上万个模块。
Rspack 1.7 将Lazy Compilation(按需编译)特性正式稳定化,并在使用 Rspack CLI 构建 Web 应用时默认开启。
什么是 Lazy Compilation?
简单来说,就是“访问哪里,编译哪里”。
过去:启动服务器时,构建工具通常会编译整个项目的入口及其依赖。
现在:启动时只编译最基础的入口代码。当你路由跳转到某个页面,或者动态导入某个模块时,Rspack 才会实时编译该部分代码。
这一改进极大地减少了首次构建的模块数量,对于拥有数百个页面的巨型应用来说,开发服务器的启动速度将带来质的飞跃。
“注意:如果你需要调试完整的构建产物或分析完整的模块图,可以通过设置
lazyCompilation: false来关闭此功能。
2. SWC 插件兼容性
使用过 SWC Wasm 插件的同学可能遇到过这种尴尬:升级了 Rspack/SWC 版本,结果插件报错了。这是因为 SWC 的 AST(抽象语法树)结构变动导致插件无法识别。
Rspack 团队向 SWC 社区贡献了一系列改进,终于在 1.7 版本中解决了这个问题:
版本无关的序列化:使用
cbor替代了对版本敏感的rkyv。容错增强:为 AST 枚举引入
Unknown变体,遇到新节点也不会直接 Crash。
这意味着,SWC 的升级将不再轻易破坏旧版插件的兼容性。插件作者维护成本降低,我们使用起来也更省心。
3. Rstack 全家桶齐发力
除了 Rspack 本体,Rstack 生态的其他成员也都有亮点更新:
Rsbuild 1.7:错误更直观,体积更透明
运行时错误 Overlay:以前开发时页面崩了可能还要看控制台,现在 Rsbuild 直接把运行时错误渲染在页面蒙层上,调试更方便。
产物体积对比:开启
performance.printFileSize.diff后,构建结束时会自动展示与上次构建的文件体积差异。文件变大变小,一目了然。
Rspress 2.0 RC:面向 AI 的文档生成
这是一个非常的前瞻性功能。Rspress 2.0 引入了SSG-MD特性。
传统的 SSG 生成 HTML 给浏览器看,而 SSG-MD 则将页面渲染为Markdown文件(以及llm.txt),专门喂给 AI(大语言模型)。
相比于直接把源码丢给 AI,经过 SSG-MD 处理后的文档保留了 React 组件的语义,去除了代码噪音,能让 AI 更准确地理解你的项目文档。
doc_build ├── llms.txt # 摘要版,包含关键文档索引 ├── llms-full.txt # 完整版,包含所有文档内容 ├── guide │ └── start │ └── introduction.md └── ...Rslib 0.19 & Rsdoctor 1.4 & Rstest 0.7
Rslib:ESM 产物构建能力稳定化,不再需要实验性配置。新增 JavaScript API,方便脚本化调用。
Rsdoctor:带来了全新的Treemap 视图,交互更顺滑,双击模块还能展开依赖链路,分析包体积从此不再头秃。
Rstest:引入配置适配器(Adapter),可以直接复用 Rslib 等工具的配置,降低接入成本。
--
Rspack 1.7 是一个稳中求进的版本。实实在在地解决了“启动慢”和“插件兼容难”这两个最影响开发体验的问题。
随着 Lazy Compilation 的默认开启,Rspack 在大规模应用场景下的竞争力将进一步增强。而 Rspress 对 AI 文档的支持,也让我们看到了 Rstack 团队对于 AI 时代开发流的思考。
参考资料:
Rspack 1.7 发布公告
Rspack v1.7.0 Release Notes