2017-08-08 41 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選項中啓用源映射允許我輕鬆地找到它。