由于 @rspack/cli 内置了对 Typescript、JSX、CSS 等资源的支持,因此从 Create React App 迁移到 Rspack 是相对简单的。
首先,我们需要更新依赖,将 Create React App 的依赖全部卸载,然后安装 @rspack/cli 依赖,并更新对应的启动脚本。
{
  "dependencies": {
-    "react-scripts": "5.0.1"
+    "@rspack/cli": "latest"
  },
  "scripts": {
-    "start": "react-scripts start",
-    "build": "react-scripts build",
-    "test": "react-scripts test"
+    "start": "rspack serve",
+    "build": "rspack build"
  }
}然后,我们需要在项目根目录下创建 rspack.config.js 文件,用于配置 Rspack 的相关选项, @rspack/cli 并未内置所有 CRA 的功能,因此还需要额外配置一些选项,具体配置如下:
const CopyPlugin = require('copy-webpack-plugin');
/** @type {import('@rspack/cli').Configuration} */
const config = {
  entry: {
    main: './src/index.jsx', // 配置项目入口文件
  },
  builtins: {
    html: [
      {
        template: './index.html', // 对齐 CRA 生成index.html
      },
    ],
    copy: {
      patterns: [
        {
          from: 'public',
        },
      ],
    },
  },
};
module.exports = config;eject 后的 CRA 也算一个配置较为复杂的 webpack 项目,以下列举了迁移时主要做的几件事,详细的迁移配置前后的对比可以参考 rspack-migration-showcase/pull/6。