April 22, 2026
Rsbuild 2.0 发布

我们很高兴地宣布 Rsbuild 2.0 已经正式发布!
自 1.0 发布以来,Rsbuild 的 npm 周下载量已增长超过 15 倍,并成为创建全新 Rspack 项目的首选方案。与此同时,越来越多团队从 webpack、Create React App 等工具迁移至 Rsbuild,并在构建效率和开发体验上获得了提升。
作为一款基于 Rspack 2.0 的构建工具,Rsbuild 2.0 致力于为 Web 开发者带来现代化、开箱即用的开发体验。为了帮助社区平稳升级到 2.0,我们发布了 20 多个预览版本,并进行了为期三个月的充分测试。目前,许多基于 Rsbuild 的工具已经升级到 Rsbuild 2.0,包括 Rslib、Rstest、Rspress、Storybook Rsbuild 以及 Modern.js 等。
2.0 版本的主要改进包括:
- 更现代:
- 更安全:
- 更轻量:
Pure ESM 包
@rsbuild/core 现已以 pure ESM 包的形式发布,并移除了自身的 CommonJS 构建产物。这一调整仅影响 Rsbuild 本身的发布形式,使安装体积减少了约 500KB。
在 Node.js 20 及以上版本中,运行时已原生支持通过 require(esm) 加载 ESM 模块。因此,对大多数仍通过 JavaScript API 使用 Rsbuild 的项目来说,这一变更通常不会带来实际影响,也无需额外修改现有代码。
Node.js 支持
从 2.0 开始,Rsbuild 最低支持的 Node.js 版本为 20.19+ 或 22.12+。由于 Node.js 18 已于 2025 年 4 月底结束维护,2.0 也不再继续支持该版本。
我们通常会在某个 Node.js 版本进入 EOL 约一年后再移除支持,以为社区和用户预留更充足的升级时间。
ESM Node 产物
在构建 Node.js 产物时,Rsbuild 2.0 默认输出未压缩的 ES modules 代码。而在 Rsbuild v1 中,默认产物为压缩后的 CommonJS 代码。
这一调整更符合现代 Node 应用的主流实践。同时,服务端代码默认不压缩,有助于保留清晰的调试堆栈,提升问题排查效率。
需要注意的是,运行时需要具备加载 ESM 的能力。例如在 package.json 中设置 "type": "module",或者使用 .mjs 作为输出文件扩展名。如果你的项目仍依赖 CommonJS,可以显式切回原有行为:
装饰器版本更新
随着底层 SWC 支持 2023-11 装饰器版本,Rsbuild 将 decorators.version 默认值从 2022-03 调整为 2023-11。
2023-11 是当前最新的提案版本,对应 2023 年 11 月 TC39 会议后的规范,同时也是 Babel 8 的默认行为。如果你需要保留旧行为,可以显式指定版本:
默认 host 变化
server.host 的默认值从 '0.0.0.0' 调整为 'localhost'。这意味着开发和预览服务器默认仅监听本机,不再对局域网内的其他设备开放。
这一调整遵循「默认安全」的原则。在大多数本地开发场景中,开发服务器无需对外暴露。仅监听本机地址可以减少意外暴露,降低在共享网络环境中被扫描或攻击的风险。
如果你需要在局域网设备上访问页面,可以显式开启网络访问:
也可以通过 CLI 的 --host 参数快速开启:
Proxy 中间件升级
开发服务器使用的 http-proxy-middleware 已经从 v2 升级至最新的 v4 版本,同时其底层依赖从已经停止维护的 http-proxy 切换为由 unjs 社区积极维护的 httpxy。
这主要带来几点改进:
- 支持 HTTP/2 代理
- 解决已知的安全问题
- 不再依赖 Node.js 已废弃的
url.parse()API
server.proxy的部分字段已发生变更,升级时请参考 从 v1 升级到 v2。
精简依赖
Rsbuild 2.0 对默认依赖进行了精简,将仅在特定场景下使用的包移出默认依赖,使依赖数量从 14 个减少到 5 个,安装体积约减少 2 MB。
本次调整主要涉及:
- 不再默认安装
core-js,在使用 output.polyfill 时需要手动安装。 - 不再默认安装
@module-federation/runtime-tools,在使用 moduleFederation.options 时需要手动安装,Module Federation 2.0 不受影响。 - 移除
webpack-bundle-analyzer依赖,推荐使用 Rsdoctor 进行产物分析,或自行安装和注册webpack-bundle-analyzer。

