我想使用Webpack(v2.5.1)和UglifyJsPlugin删除某些文件require / imports,具体取决于环境(开发/生产)。
现状
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 :(得分:0)
通过Webpack GitHub repo的问题,理解死代码消除在这个例子中不起作用。如果我使用if
子句更直接地重写它,它可以工作,如下所示:
export const IMAGES = {
PROFILE: require('images/profile.png'),
// ...
};
if (process.env.NODE_ENV !== 'production') {
IMAGES.LOGO = require('images/logo.png');
}