由于 @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。