我在一个React/Redux应用程序上得到了这个错误消息,该应用程序被缩小并打包为Browserify和Gulp,并部署到Heroku。
bundle.js:39 You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux.
但是,构建步骤似乎是在NODE_ENV = 'production'中完成的。
我有一个任务来设置env变量,如下所示
gulp.task('apply-prod-environment', function() {
return process.env.NODE_ENV = 'production';
});Heroku的日志显示ENV正在生产:

为了保证apply-prod-environment在其他任务之前运行,我使用了RunSequence Gulp插件。
gulp.task('buildProd', cb => {
runSequence(
'apply-prod-environment',
'task-1',
'task-2',
'etc',
cb
);
});编辑
第二次尝试.
import envify from 'envify/custom';
function buildJS(sourceFile, {setEnv}) {
return browserify(sourceFile)
.transform(babelify, {
presets: ['es2015', 'react', 'stage-2']
})
.transform(envify({
NODE_ENV: setEnv
}))
.bundle()
.on('error', (e) => {
gutil.log(e);
});
}仍然得到相同的错误
第三次尝试.
function buildJS(sourceFile, {setEnv}) {
return browserify(sourceFile)
.transform(babelify, {
presets: ['es2015', 'react', 'stage-2']
})
.transform(
{global: true},
envify({
NODE_ENV: setEnv
})
)
.bundle()
.on('error', (e) => {
gutil.log(e);
});
}仍然得到相同的错误
发布于 2016-11-30 07:02:36
我与同样的问题做了斗争,最后我使用松懈来模拟我想要覆盖的环境变量。
然后,我的吞咽任务看起来如下:
gulp.task('javascript:prod', function() {
return browserify("app/main.js", { debug: !IS_PROD })
.transform("babelify", { presets: [ "es2015", "react" ], plugins: [ "transform-object-rest-spread", "transform-function-bind", "transform-object-assign" ] })
.transform('loose-envify', { NODE_ENV: 'production' })
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(uglify())
.pipe(rev())
.pipe(gulp.dest("./public/javascripts/"))
.pipe(rev.manifest({merge:true, base: 'build/assets'}))
.pipe(gulp.dest('build/assets'));
});https://stackoverflow.com/questions/40881633
复制相似问题