2017-05-09 53 views
0

我想使用Webpack(v2.5.1)和UglifyJsPlugin取決於環境(開發/生產)的特定文件require/imports。如何消除死webpack需要/進口?

現狀

export const IMAGES = Object.assign(
    { 
    PROFILE: require('images/profile.png'), 
    // ... 
    }, 
    process.env.NODE_ENV !== 'production' && {'LOGO': require('images/logo.png')} 
); 

我迄今,經過生產建設輸出的JavaScript文件不包含IMAGES.LOGO鍵得到,但所需要的images/logo.png文件存在於輸出。

我有一種預感,Webpack可以在Uglify之前解決這些文件,然後讓它們保持它們,儘管它們在死代碼消除後不再使用任何地方。

有沒有辦法實現它?

的WebPack插件配置

new webpack.DefinePlugin({ 
    'process.env.NODE_ENV': JSON.stringify('production') 
}), 
new webpack.optimize.UglifyJsPlugin({ 
    comments: false, 
    sourceMap: true 
}) 

回答

0

通過問題的WebPack GitHub庫,瞭解,消除死代碼不會在這個例子中工作。如果我用if子句更直接地重寫它,它的工作原理如下:

export const IMAGES = { 
    PROFILE: require('images/profile.png'), 
    // ... 
}; 

if (process.env.NODE_ENV !== 'production') { 
IMAGES.LOGO = require('images/logo.png'); 
}