UglifyJS似乎干扰了生产中使用的React dist

时间:2017-08-08 08:56:30

标签: javascript reactjs webpack uglifyjs create-react-app

这些是我的Webpack配置的一些内容,似乎与我的问题有关:

new webpack.EnvironmentPlugin(['NODE_ENV']),

// Minify the code.
new UglifyJSPlugin({
  compress: {
    dead_code: true,
    drop_debugger: true,
    warnings: false
  },
  output: {
    comments: false
  }
}),

我正在使用CRA配置的弹出版本看起来几乎相同并从build.js获取其环境变量 - 请注意我保持这种情况

if (env['process.env'].NODE_ENV !== '"production"') {
  throw new Error('Production builds must have NODE_ENV=production.');
}

在我的生产webpack配置中,所以我怀疑问题是我没有正确传递我的环境变量。

有趣的是,我得到了这个React错误:

Warning: It looks like you're using a minified copy of the development build of React.

如果我删除缩小相关代码(整个UglifyJSPlugin块),结果捆绑包显然更大,但React警告消失了。有什么可能导致这个的想法吗?

编辑:即使我使用webpack-define-plugin明确地将NODE_ENV设置为production,这也是'process.env.NODE_ENV': JSON.stringify('production')我仍然会在Uglify中收到此错误。

1 个答案:

答案 0 :(得分:0)

事实证明,React捆绑包来自我在我的应用程序中使用的捆绑严重的库:在我的uglify选项中启用源映射使我能够轻松找到它。