rya*_*zec 1 javascript node.js browserify reactjs
所以我通过NPM和Browserify使用ReactJS,但是我试图弄清楚如何在生产模式下构建它,就像自述文件所说,但它似乎没有用.我有这个代码来设置browserify:
var browserify = require('browserify');
var envify = require('envify/custom');
var debug = false;
Run Code Online (Sandbox Code Playgroud)
...
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));
Run Code Online (Sandbox Code Playgroud)
但是当我查看编译后的代码时,我看到了一堆:
if ("production" !== process.env.NODE_ENV) {
Run Code Online (Sandbox Code Playgroud)
我虽然应该编译为:
if ("production" !== "production") {
Run Code Online (Sandbox Code Playgroud)
然后可以通过UglifyJS2等工具自动删除.我设置Envify错了吗?或者其他的东西.
React已经envify自动配置.它将获取构建脚本本身正在运行的环境.通常NODE_ENV在运行实际构建脚本之前设置,例如
NODE_ENV=production gulp build
Run Code Online (Sandbox Code Playgroud)
或者甚至更好,你已经将你的构建步骤添加到了"scripts"你的块中package.json,所以你可以做到
npm run --production build
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5886 次 |
| 最近记录: |