本节内容源自以下链接的内容,并受 CC BY 4.0 许可证约束。
除非另有说明,否则以下内容可被认为是基于原始内容修改和删除的结果。
DefinePlugin
在编译时用其他值或表达式替换代码中的变量。这对于在开发构建和生产构建之间允许不同的行为非常有用。如果您在开发构建中执行日志记录,但在生产构建中不执行日志记录,则可以使用全局常量来确定是否执行日志记录。这就是 DefinePlugin
发光的地方,为开发和生产构建设置一次性规则。
传递给 DefinePlugin
的每个键都是一个标识符或多个用 .
连接的标识符。
typeof
,则它仅针对 typeof 调用定义。这些值将内联到代码中,允许最小化过程删除冗余条件。
在为 process
定义值时,优先使用 'process.env.NODE_ENV': JSON.stringify('production')
而不是 process: { env: { NODE_ENV: JSON.stringify('production') } }
。使用后者将覆盖 process
对象,这可能会破坏与期望在 process 对象上定义其他值的某些模块的兼容性。
请注意,由于插件执行直接文本替换,因此传递给它的值必须包含字符串本身内的 实际引号。通常,这是通过使用替代引号完成的,例如 '"production"'
,或通过使用 JSON.stringify('production')
。
通过 Rspack(无最小化)后的结果为
然后在最小化过程之后的结果为
使用 功能标志 在生产/开发构建中启用/禁用功能。
在生产/开发构建中使用不同的服务 URL