所以这是我的任务:
gulp.task('prod', function() {
browserify({entries: [
'resources/assets/js/app.js'
]})
.transform("babelify")
.transform(envify({
NODE_ENV: 'production'
}))
.bundle()
.pipe(source('all.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify())
.on('error', gutil.log)
.pipe(gulp.dest('public/js/'));
});
然而控制台仍然是sais:
all.js:30 Warning: It looks like you're using a minified copy of the development build of React. When deploying React apps to production, make sure to use the production build which skips development warnings and is faster. See [url here that stack doesn't like] for more details.
所以我很困惑。什么交易?
答案 0 :(得分:3)
运行构建过程时,请设置NODE_ENV(linux):
NODE_ENV=production gulp build
或(Windows)
SET NODE_ENV=production
gulp build
如果您将build脚本添加到package.json中 - 您可以运行npm:
npm run --production build
或者你可以尝试修改你的文字:
...
.transform(envify({
'process.env.NODE_ENV': 'production'
}))
...
但这取决于您使用的envify版本
答案 1 :(得分:0)
您应该对生产包使用minified react版本。自己缩小反应代码不是解决方案,因为有许多条件,例如:process.env.NODE_ENV !== 'production'
。
您可以查看here:
我们提供两个版本的React:一个用于开发的未压缩版本和一个用于生产的缩小版本。开发版本包含有关常见错误的额外警告,而生产版本包括额外的性能优化并删除所有错误消息。
因此,您应该使用react.min.js
而不是/node_modules/react/dist
的{{1}}作为生产包。