本节内容源自以下链接的内容,并受 CC BY 4.0 许可证约束。
除非另有说明,以下内容可被视为基于原始内容进行修改和删除的结果。
EnvironmentPlugin
是使用 DefinePlugin
在 process.env
密钥上的简写。
string[] | Record<string, string>
EnvironmentPlugin
接受一个密钥数组或一个将密钥映射到其默认值的 对象。
这等效于以下 DefinePlugin
应用
未指定环境变量将引发“EnvironmentPlugin
- ${key}
环境变量未定义”错误。
或者,EnvironmentPlugin
支持一个对象,该对象将密钥映射到其默认值。如果 process.env
中未定义密钥,则将使用密钥的默认值。
来自 process.env
的变量始终是字符串。
与 DefinePlugin
不同,EnvironmentPlugin
会将默认值应用于 JSON.stringify
。
null
和 undefined
的默认值的行为不同。对于必须在捆绑过程中提供的变量,请使用 undefined
,或者对于可选变量,请使用 null
。
如果在捆绑过程中找不到环境变量,并且未提供默认值,Rspack 将抛出错误而不是警告。
让我们调查在测试文件 entry.js
上运行先前的 EnvironmentPlugin
配置时产生的结果
在终端中执行 NODE_ENV=production
Rspack 来构建时,entry.js
将变为以下内容
运行 DEBUG=false
Rspack 将生成
以下 EnvironmentPlugin
配置提供与存储库的最后一次 Git 提交相对应的 process.env.GIT_VERSION
(例如“v5.4.0-2-g25139f57f”)和 process.env.GIT_AUTHOR_DATE
(例如“2020-11-04T12:25:16+01:00”)
第三方 DotenvPlugin
(dotenv-webpack
) 允许你公开 (部分) dotenv 变量