2016-11-13 34 views
2

我使用一飲而盡我reactjs的解決方案,並希望設置NODE_ENV,我嘗試這樣做:如何設置NODE_ENV?

gulp.task('set-dev-node-env', function() { 
    return process.env.NODE_ENV = 'development'; 
}); 
//dev environment run 
gulp.task('default', ['set-dev-node-env', 'webpack-dev-server']); 

當我運行一飲而盡,並檢查chromeconsole它說:

testing process.env.NODE_ENV undefined 

我在想什麼或者我該如何設置這個NODE_ENV變量?我想以某種方式將它設置在gulp文件中。

下面是完整的項目:github

+0

你不能得到NODE_ENV Chrome的控制檯(客戶端)(服務器端)。 – elmeister

+0

好的,我怎麼能得到它呢? –

+0

@elmeister爲什麼不呢? Chrome可以用來調試Node;從瀏覽器運行交互式會話並不意味着它不是服務器進程當前狀態的表示(通過代理,非常類似於舊版愚蠢終端的智能版本)。 – user2864740

回答

2

由於您使用的WebPack可以使用WebPack Define Plugin注入NODE_ENV

例如,在您的webpack.config.dev.js:

module.exports = { 
    ... 

    plugins: [ 
    ... 
    new webpack.DefinePlugin({ 
     'process.env.NODE_ENV': JSON.stringify('development'), 
    }), 
    ], 
}; 

然後在您的反應代碼中,您將有權訪問NODE_ENV,您將其設置爲process.env.NODE_ENV

+1

有沒有一個原因,你json字符串字符串?字符串是否需要轉義? – nem035

+2

查看文檔。字符串被評估爲代碼片段。 'JSON.stringify('development')'將值設置爲字符串'development'。其他選項是使用:''\「development \」「','''development \''','''development」或'''development'「''。 – DTing

0

你可以試試這個使用gulp-env模塊

// gulpfile.js 

var gulp = require('gulp'); 
var env = require('gulp-env'); 

gulp.task('set-dev-node-env', function() { 
    env({ 
    vars: { 
     NODE_ENV: "development" 
    } 
    }) 
}); 

gulp.task('default', ['set-dev-node-env', 'webpack-dev-server'])