React告诉我,我在开发中使用缩小...

时间:2016-07-06 03:51:14

标签: reactjs

所以这是我的任务:

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.

所以我很困惑。什么交易?

2 个答案:

答案 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}}作为生产包。