process.env.NODE_ENV 已设置但仍未定义

process.env.NODE_ENV is set but still undefined

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

..在 gulp 文件中只有一个输出

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,但这也不行。

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

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