最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

webpack中的编译时变量,NODE

IT培训 admin 10浏览 0评论

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 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)
  })
);

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论