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 文档。