通过envify设置NODE_ENV不起作用

Ela*_*hmi 5 browserify reactjs gulp

我有以下gulp任务gulpfile.js:

    gulp.task('build-scripts', function () {
    var b = browserify({ debug: false });
    b.transform(reactify);
    b.transform(envify({
        _: 'purge',
        NODE_ENV: 'production'
    }));

    b.add('./src/scripts/index.js');

    return b.bundle()
    .pipe(source('./www/scripts/dist/bundle.js'))
    .pipe(buffer())
    .pipe(uglify())
    .pipe(gulp.dest('.'))

});
Run Code Online (Sandbox Code Playgroud)

任务以状态0完成,React转换发生,但bundle.js我仍然看到:

if (process.env.NODE_ENV !== 'production') {
Run Code Online (Sandbox Code Playgroud)

这不应该随着envify改造而消失吗?我在这里做错了吗?

我已经做了一些挖掘,但我能找到的所有解决方案都是os x/linux特定的(我在windows机器上).

编辑:我正在从visual studio中运行gulp build Task Runner Explorer.

Dom*_*nic 3

医生说:

默认情况下,未定义的环境变量将保持不变。

https://github.com/hughsk/envify#purging-processenv

您在运行之前尝试过定义它吗?IE

process.env.NODE_ENV = 'production';
Run Code Online (Sandbox Code Playgroud)