close
logologo
指南
配置
插件
API
社区
版本
更新日志
Rsbuild 0.x 文档
English
简体中文
指南
配置
插件
API
社区
更新日志
Rsbuild 0.x 文档
English
简体中文
logologo

开始

介绍
快速上手
功能导航
名词解释

框架

React
Vue
Preact
Svelte
Solid

基础

命令行工具
开发服务器
构建产物
静态资源
HTML
JSON
Wasm
TypeScript
Web Workers
部署静态站点
升级 Rsbuild

配置

配置 Rspack
配置 Rsbuild
配置 SWC

样式

CSS
CSS Modules
CSS-in-JS
Tailwind CSS v4
Tailwind CSS v3
UnoCSS

进阶

路径别名
环境变量
模块热更新
浏览器范围
浏览器兼容性
模块联邦
多环境构建
服务端渲染(SSR)
测试

优化

代码拆分
产物体积优化
提升构建性能
静态资源内联

迁移

从 Rsbuild 0.x 迁移
webpack
Create React App
Vue CLI
Vite
Vite 插件
Modern.js Builder

调试

开启调试模式
构建性能分析
使用 Rsdoctor

常见问题

通用类问题
功能类问题
异常类问题
热更新问题
📝 在 GitHub 上编辑此页
上一页Vite 插件
下一页开启调试模式

#Modern.js Builder

本章节介绍如何将使用 Modern.js Builder (或 EdenX Builder) 的项目迁移到 Rsbuild。

#主要区别

Rsbuild 是 Modern.js Builder 的新版本,主要区别如下:

  • Rsbuild 的性能更出色,在同时使用 Rspack 的情况下,Rsbuild 的启动速度和构建速度是 Builder 的 1.5 ~ 2 倍。
  • Rsbuild 仅支持 Rspack 作为打包工具,不再支持 webpack。
  • Rsbuild 的 CLI 工具和 dev server 更加强大,支持更多功能。

#安装依赖

首先你需要把 Builder 相关的 npm 依赖替换为 Rsbuild 的依赖。

  • 移除 Builder 的依赖:
npm
yarn
pnpm
bun
npm remove @modern-js/builder-cli @modern-js/builder-webpack-provider @modern-js/builder-rspack-provider
  • 安装 Rsbuild 的依赖:
npm
yarn
pnpm
bun
npm add @rsbuild/core -D

#更新 npm scripts

下一步,你需要把 package.json 中的 npm scripts 更新为 Rsbuild 的 CLI 命令。

package.json
{
  "scripts": {
    "dev": "builder dev",
    "build": "builder build",
    "serve": "builder serve",
    "dev": "rsbuild dev",
    "build": "rsbuild build",
    "preview": "rsbuild preview"
  }
}

#修改配置文件

  • 将 builder.config.ts 重命名为 rsbuild.config.ts。
  • 从 @modern-js/builder-cli 中导入 defineConfig 方法,改为从 @rsbuild/core 中导入。
  • 将 builderPlugins 字段改为 plugins。
rsbuild.config.ts
import { defineConfig } from '@modern-js/builder-cli'; 
import { defineConfig } from '@rsbuild/core'; 

export default defineConfig({
  builderPlugins: [],
  plugins: [],
});

#替换插件

Rsbuild 和 Builder 的插件系统不兼容,因此需要将 Builder 的插件替换为 Rsbuild 的插件。

下面是 Builder 插件和 Rsbuild 插件的对应关系:

BuilderRsbuild
@modern-js/builder-plugin-vue@rsbuild/plugin-vue
@modern-js/builder-plugin-vue2@rsbuild/plugin-vue2
@modern-js/builder-plugin-stylus@rsbuild/plugin-stylus
@modern-js/builder-plugin-node-polyfill@rsbuild/plugin-node-polyfill
@modern-js/builder-plugin-image-compress@rsbuild/plugin-image-compress
@modern-js/builder-plugin-swc默认生效,无须使用
@modern-js/builder-plugin-esbuild不再支持

以 @modern-js/builder-plugin-vue 为例,你需要先安装 @rsbuild/plugin-vue,然后在 rsbuild.config.ts 中引入插件,并添加到 plugins 字段中。

rsbuild.config.ts
import { builderPluginVue } from '@modern-js/builder-plugin-vue'; 
import { pluginVue } from '@rsbuild/plugin-vue'; 

export default defineConfig({
  builderPlugins: [builderPluginVue()],
  plugins: [pluginVue()],
});

#添加 React 相关插件

Rsbuild 不与任何前端 UI 框架耦合。因此,如果你是一个 React 项目,需要手动添加 React 插件:

rsbuild.config.ts
import { pluginReact } from '@rsbuild/plugin-react';

export default {
  plugins: [pluginReact()],
};

如果你当前项目中有使用 SVGR,还需要注册 Rsbuild 的 SVGR 插件:

rsbuild.config.ts
import { pluginSvgr } from '@rsbuild/plugin-svgr';

export default {
  plugins: [pluginSvgr()],
};

如果你是其他框架的使用者,可参考 插件列表 选择对应的框架插件。

#配置迁移

Rsbuild 和 Builder 的绝大多数配置项是一致的,仅有少许配置项进行了调整。

你可以通过 Rsbuild 配置项 来查看 Rsbuild 的配置项。

值得注意的是,相比 Builder,Rsbuild 中一些默认值和行为存在差异:

  • 浏览器范围:默认最低兼容到支持 原生 ES Modules 的浏览器,可参考 Browserslist 默认值。
  • HTML 文件输出位置:默认输出到 dist 目录的根部,可参考 默认产物目录。
  • Polyfill 注入方式:默认按需注入,可参考 output.polyfill。
  • TypeScript 类型检查:默认不开启,需要手动注册 @rsbuild/plugin-type-check。
  • 修改 DevServer 配置:通过 dev 和 server 配置项修改。

#验证结果

完成以上步骤后,你已经完成了从 Modern.js Builder 到 Rsbuild 的基本迁移,此时可以执行 npm run dev 命令来尝试启动开发服务器。

如果在构建过程中发现问题,请根据错误日志进行调试。

#内容补充

当前文档只涵盖了迁移过程的部分事项,如果你发现有合适的内容可以补充,欢迎通过 pull request 来完善文档 🤝。

Rsbuild 的文档位于 rsbuild/website 目录。