通过选择 development, production 或 none 中的一个,来设置 mode 参数,你可以启用 webpack 内置在相应环境下的优化。其默认值为 production。
只需在配置对象中提供 mode 选项:
mode: 'production', };
或者从 CLI 参数中传递:
webpack --mode=development
使用上面任何一种配置,在模块中虽然能够拿到 process.env.NODE_ENV,但是在 webpack.config.js 中拿不到,打印及输出如下:
配置文件中:

模块中打印结果:

为保证在配置文件和模块中都能拿到这个环境变量,需改变配置如下
NODE_ENV=development webpack
如上配置,打印结果如下:


如此在模块中、配置文件中就可以同时拿到环境变量了。
注意:在进行“NODE_ENV=development webpack”配置时候,在大多数Windows命令行中在使用 NODE_ENV = production 设置环境变量时会报错。同样,Windows和Linux命令如何设置环境变量也有所不同。所以需要使用 cross-env 来支持跨平台设置和使用环境变量的脚本,这样可以设置在不同的平台上有相同的 NODE_ENV 参数。
配置如下:
cross-env NODE_ENV=development webpack
根据不同的环境进行不同的配置,如不同环境的域名不同,我们就可以利用 DefinePlugin(https://www.php.cn/link/af6e8730844faa627625a6c3fa98f0fc
config/env.js
const env = process.env.NODE_ENV;
const config = {
development: {
loginApi: 'www.abc-login-test.com',
orderApi: 'www.abc-order-test.com'
},
production: {
loginApi: 'www.abc-login.com',
orderApi: 'www.abc-order.com'
}
};
module.exports = config[env];webpack.config.js
const envConfig= require('./config/env');
module.exports = {
...
plugins: [
new webpack.DefinePlugin({
envConfig: JSON.stringify(envConfig)
})
]
...
}index.js
console.log(envConfig)
打印结果如下:


以上就是webpack中mode、NODE_ENV、DefinePlugin、cross-env的使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号