变量,NODE"/>
webpack中的编译时变量,NODE
我正在使用webpack 4.41.6。
如果我的一个JS文件中有此文件:
const var1 = process.env.NODE_ENV === 'development' ? 'foo' : 'bar';
const var2 = process.env.SOME_VAR === 'something' ? 'moo' : 'cow';
console.log(var1, var2);
然后运行SOME_VAR=something NODE_ENV=production webpack
,我得到:
a="something"===e.env.SOME_VAR?"moo":"cow";console.log("bar",a);
NODE_ENV有什么特别之处?如何使用SOME_VAR获得相同的编译时优化?
感谢您的帮助。
回答如下:我从webpack gitter获得了一些帮助;他们将我指向DefinePlugin和Mode的方向。
事实证明,NODE_ENV
是很特殊,它会生成类似这样的内容:
new webpack.DefinePlugin({ "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV) })
我忽略了这一点,因为我的webpack配置或节点依赖项中没有DefinePlugin;显然是内置的?
我将此添加到我的webpack配置中,现在可以按我希望的那样工作:
plugins.push(
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
'process.env.SOME_VAR': JSON.stringify(process.env.SOME_VAR)
})
);
更多推荐
webpack中的编译时变量,NODE
发布评论