2017-08-08 43 views
0

反应DIST使用的这些,似乎是有关我的问题我的WebPack配置位干扰:UglifyJS似乎在生产

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配置

,所以我怀疑的问题是,我没有正确地传递我的环境变量。

有趣的是,我已经得到这个阵营错误:

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

如果我删除了缩小相关的代码(整个UglifyJSPlugin块)所产生的束显然更大,但阵营警告走了。任何想法可能会导致这种情况?


编辑:即使我明确地把我NODE_ENVproduction用的WebPack界定,插件,这是'process.env.NODE_ENV': JSON.stringify('production')我仍然得到这个错误与丑化。

+0

您需要将未统一的ReactJS代码与官方缩小的ReactJS版本交换 – lumio

+0

由于缩小版正在反应的“开发版本”上运行,而不是prod版本,因此删除uglifyjs时反应警告消失。使用uglifyjs构建仅在生产时生成(NODE_ENV ==='生产') –

+0

如何使用已缩小版本的React解决此问题? 目前我正在安装React和yarn,我已经在我的应用程序的依赖关系中以这种方式定义了它:“react”:“^ 15.4.1” – feychou

回答

0

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