该配置由 Modern.js Builder 提供,更多信息可参考 source.define。
Record<string, unknown>
{}
构建时将代码中的变量替换成其它值或者表达式,可以用于在代码逻辑中区分开发环境与生产环境等场景。
传入的配置对象的键名是需要替换变量的名称,或者是用 .
连接的多个标识符,配置项的值则根据类型进行不同的处理:
.
连接作为需要替换的变量名。更多细节参考 webpack - DefinePlugin。
在使用 Rspack 作为打包工具时,支持的类型可参考 Rspack.builtins.define
export default {
source: {
define: {
PRODUCTION: JSON.stringify(true),
VERSION: JSON.stringify('5fa3b9'),
BROWSER_SUPPORTS_HTML5: true,
TWO: '1 + 1',
'typeof window': JSON.stringify('object'),
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
'import.meta': { test: undefined },
},
},
};
表达式会被替换为对应的代码段:
const foo = TWO;
// ⬇️ Turn into being...
const foo = 1 + 1;