Rspack 提供了与 webpack 相似的配置项,通过本章节,你可以了解 Rspack 配置的使用方式。
当你运行 Rspack 的命令行工具时,Rspack 会自动读取当前路径下的 rspack.config.*
文件。
一个基础的 Rspack 配置文件如下所示:
Rspack 支持以下配置文件格式:
rspack.config.js
: 默认为 CommonJS
格式,如果所在 package.json 的 type 为 "module" 则变成 ES modules
格式。rspack.config.ts
: TypeScript
格式,参考 TypeScript 配置文件 了解更多。rspack.config.cjs
: 强制为 CommonJS
格式。rspack.config.mjs
: 强制为 ES modules
格式。注意,Rspack 将首先搜索 JS 配置文件,然后才是 TS 配置文件。
CommonJS
和ES modules
的区别请参考 ES modules 和 CommonJS。
在使用 rspack.config.ts
时,你需要使用支持 TypeScript 的运行时,或者安装额外的依赖来解析 TypeScript 文件,你可以选择以下任意一种:
如果你使用的 JavaScript 运行时已经原生支持 TypeScript,你可以使用内置的 TS 转换来加载配置文件,而无需安装额外的依赖。
例如,Node.js 已经原生支持 TypeScript,你可以使用以下命令来使用 Node.js 原生加载器来加载配置文件:
--experimental-transform-types
选项:--experimental-transform-types
选项:详见 Node.js - Running TypeScript Natively。
对于低于 Node.js v22.7.0 的版本,你可以使用 esbuild-register
来加载配置文件。
安装 esbuild 和 esbuild-register 即可,不需要任何配置。
你也可以使用 ts-node 来加载配置文件。
ts-node
:tsconfig.json
中配置 ts-node
使用 CommonJS
模块:使用 defineConfig
工具函数来启用智能补全。对于 JavaScript 配置文件,你可以使用 // @ts-check
注释来启用类型检查。
你也可以使用 JSDoc 来启用类型检查。
Rspack 命令行支持通过 --config
选项来指定配置文件的名称。
例如,你需要在执行 build 时使用 rspack.prod.config.js
文件,可以在 package.json
中添加如下配置:
也可以将 --config
选项缩写为 -c
:
Rspack 支持在 Rspack 配置文件中导出一个函数,你可以在函数中动态计算配置,并返回给 Rspack。
从上述示例中可以看到,该函数接受两个入参:
env
,对应运行 CLI 命令时 --env
选项的值。argv
,包含传递给 CLI 的所有选项。除了通过 env
参数,通过 process.env.NODE_ENV
来判断当前环境是更常见的方式:
使用 webpack-merge
导出的 merge
函数来合并多个配置。
关于 merge
的更多信息请查看 webpack-merge 文档。