因此,我正在通过NPM和Browserify使用ReactJS,然而,我正试图弄清楚如何像自述那样在生产模式中构建它,但它似乎不起作用。我有下面的代码来设置浏览器:
var browserify = require('browserify');
var envify = require('envify/custom');
var debug = false;..。
var libraries = browserify({
debug: debug
}).transform(envify({
_: 'purge',
NODE_ENV: debug ? 'development' : 'production'
}));
gulpConfig.tasks.browserify.transformers.forEach(function(transform) {
libraries.transform(transform);
});
gulpConfig.tasks.browserify.libraries.forEach(function(metaData) {
if(metaData.path) {
libraries.require(metaData.path, {
expose: metaData.name
});
} else {
libraries.require(metaData.name);
}
});
var libraryStream = libraries.bundle()
.on('error', function(err){
var message;
if(err.description)
message = 'browserify error: ' + err.description + ' when parsing ' + err.fileName + ' | Line ' + err.lineNumber + ', Column ' + err.column;
else {
message = err.message;
}
gutil.log(gutil.colors.red(message));
this.emit('end');
})
.pipe(source('libraries.js'));
libraryStream.pipe(gulp.dest(gulpConfig.buildPath));但是,当我查看编译后的代码时,我看到了一堆这样的内容:
if ("production" !== process.env.NODE_ENV) {我认为它应该编译成:
if ("production" !== "production") {然后,像UglifyJS2这样的工具就可以自动删除它。我是不是把环境设置错了?或者别的什么。
发布于 2015-03-09 16:27:30
React已经自动配置envify。它将获取构建脚本本身正在运行的环境。通常在运行实际构建脚本之前设置NODE_ENV。
NODE_ENV=production gulp build或者更好的是,您应该将构建步骤添加到您的"scripts"块中的package.json中,这样您就可以这样做了
npm run --production build发布于 2015-12-02 09:44:14
只需更改为
var libraries = browserify({
debug: debug
}).transform(envify({
_: 'purge',
NODE_ENV: debug ? 'development' : 'production'
}), {
global: true
});https://stackoverflow.com/questions/28939762
复制相似问题