第一种方式:不推荐
// webpack.config.js
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = (env, argv) => {
let config = {...} // 默认配置
if (env === 'production') {
config.mode = 'production'
config.plugins = [
...config.plugins,
new CleanWebpackPlugin(),
new CopyWebpackPlugin(['public'])
]
}
return config
}
第二种方式
yarn add webpack-merge —dev
// webpack.common.js
// webpack.dev.js
const common = require('./webpack.common.js')
const merge = require('webpack-merge')
module.exports = merge(common, {
mode: 'development'
})
// webpack.prod.js
const common = require('./webpack.common.js')
const merge = require('webpack-merge')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = merge(common, {
mode: 'production',
plugins: [
new CleanWebpackPlugin(),
new CopyWebpackPlugin(['public'])
]
})
webpack构建速度和打包体积优化策略:https://segmentfault.com/a/1190000021952886