admin管理员组文章数量:815096
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
版权声明:本文标题:webpack中的编译时变量,NODE 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1715203288a822449.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论