const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const isProductionPhase = process.env.NODE_ENV === "production";
module.exports = {
configureWebpack: config => {
if (process.env.NODE_ENV === "production") {
// 为生产环境修改配置...
config.mode = "production";
// 这里修改下
config.optimization.minimizer = [
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false,
drop_console: true, //console
drop_debugger: true,
pure_funcs: ['console.log'] //移除console
}
}
})
]
} else {
config.mode = "development";
}
},
filenameHashing: false,
publicPath: process.env.NODE_ENV === "production" ? "./" : "./",
// // delete HTML related webpack plugins
chainWebpack: config => {
if (isProductionPhase) {
config.plugins.delete("html");
config.plugins.delete("preload");
config.plugins.delete("prefetch");
config.entry.app = ["babel-polyfill", "./src/main.js"];
}
config.optimization.splitChunks({ // 代码分割
chunks: 'all',// all initial
maxInitialRequests: 5,
cacheGroups: {
'moment': {
name: 'moment',
minChunks: 1,
test: (module, chunks) => /moment/.test(module.context),
priority: 30
},
'element': {
name: 'element',
minChunks: 1,
test: (module, chunks) => /element/.test(module.context),
priority: 30
},
'echarts': {
name: 'echarts',
minChunks: 1,
test: (module, chunks) => /echarts/.test(module.context),
priority: 20
},
vendors: {
name: 'vendors',
test: /[\\\/]node_modules[\\\/]/,
priority: -10,
}
}
})
},
assetsDir: "static/",
productionSourceMap: process.env.NODE_ENV === "production" ? false : true,
css: {
sourceMap: process.env.NODE_ENV !== "production",
extract: process.env.NODE_ENV === "production"
}
};
webpack splitChunks
最新推荐文章于 2024-08-06 04:15:36 发布