ReactJSには開発モードでのみ表示されるデバッグメッセージがいくつかあることに気付きました。プロダクションビルド中にバンドルからjavascriptコードを削除
バンドルする前にgulpfile.jsにprocess.env.NODE_ENV = 'production';
を設定すると、デバッグメッセージが表示されなくなります。
開発(デバッグ)ビルドでのみ表示されますが、本番ビルドにはバンドルされていないコードを書くにはどうすればよいですか?
何かのように:
function sayHello(message){
#IF DEBUG
if (!message) console.log("message cannot be null");
#ENDIF
alert(message);
}
EDIT: 私はその後、飲み込む-uglify正しくif (process.env.NODE_ENV !== 'production')
を使用しようとしたときに、生産ビルドでバンドルからのコードを削除しました。 しかし、実行時(ブラウザ内)で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'));
https://github.com/hughsk/envify –