通过envify设置NODE_ENV不起作用

时间:2015-11-04 07:12:52

标签: reactjs gulp browserify

我的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('.'))

});

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

if (process.env.NODE_ENV !== 'production') {

这不应该与envify变换一起消失吗? 我在这里做错了吗?

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

编辑:我在visual studio的Task Runner Explorer内运行gulp版本。

1 个答案:

答案 0 :(得分:3)

医生说:

  

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

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

你在尝试运行之前是否尝试过定义它?即。

process.env.NODE_ENV = 'production';