【发布时间】:2016-09-16 13:31:53
【问题描述】:
我注意到 ReactJS 有一些仅在开发模式下出现的调试消息。
当我在捆绑之前在我的 gulpfile.js 中设置 process.env.NODE_ENV = 'production'; 时,调试消息会消失。
我如何编写这样的代码,只出现在开发(调试)构建中,但不捆绑到生产构建中?
类似:
function sayHello(message){
#IF DEBUG
if (!message) console.log("message cannot be null");
#ENDIF
alert(message);
}
编辑:
当我尝试使用if (process.env.NODE_ENV !== 'production') 时,gulp-uglify 正确地从生产构建中的包中删除了代码。
但是,在运行时(在浏览器中),process.env.NODE_ENV 是未定义的,并且条件从未满足。
它怎么可能在反应中起作用?
var browserify = require("browserify");
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
process.env.NODE_ENV = 'production';
var bundler = browserify({ debug: false })
.require('react')
.require('react-dom')
bundler.bundle()
.pipe(source("reactbundle.js"))
.pipe(buffer());
.pipe(uglify())
.pipe(gulp.dest(paths.distDir + 'scripts'));
【问题讨论】:
标签: javascript gulp bundle browserify uglifyjs