【问题标题】:process.env.NODE_ENV is set but still undefinedprocess.env.NODE_ENV 已设置但仍未定义
【发布时间】:2019-12-05 18:21:13
【问题描述】:

调用 gulp 时我需要传递一个变量,这样我就可以管理不同的构建。 我在 Win7 上并尝试将 NODE_ENV 设置为 set NODE_ENV=prod .. 然后我开始 gulp

..在 gulpfile 中只有一个输出

var gulp = require('gulp');

gulp.task('default', function() {
    console.log(process.env.NODE_ENV);
});

但是 process.env.NODE_ENV 总是未定义(?)

[23:53:55] Using gulpfile F:\DevOps\gulpEnvTest\gulpfile.js
[23:53:55] Starting 'default'...
undefined
[23:53:55] The following tasks did not complete: default
[23:53:55] Did you forget to signal async completion?

这是为什么呢? ..我也尝试过其他的东西,比如cross-env,但这也不起作用。

【问题讨论】:

  • 另一种更简单的布尔决策方法是使用 gulp-mode 插件,用法描述为here

标签: node.js gulp environment-variables


【解决方案1】:

根据this answer 使用set NODE_ENV=prod 时,您只是将其设置在当前进程空间中。

您应该使用setx NODE_ENV prod 将var 设置为系统环境变量级别。

【讨论】:

  • 这很奇怪..当我在 CMD 中执行setx NODE_ENV bla 时.. 然后gulp.. 它可以工作。当我在 VSCode 的 CLI 中执行此操作时,它不会.. 但是当我在 VSCode 中执行 setx NODE_ENV bhop 然后在 CMD 中运行 gulp 时,它也可以工作..oO
  • 当您使用setx 时,您正在为整个系统全局设置此变量。所以 VSCode 也会读取它
猜你喜欢
  • 2014-10-14
  • 2021-11-04
  • 2022-01-05
  • 1970-01-01
  • 2012-06-21
  • 2021-08-06
  • 2014-06-04
  • 2019-01-02
  • 1970-01-01
相关资源
最近更新 更多