第一种方式:不推荐

    1. // webpack.config.js
    2. const { CleanWebpackPlugin } = require('clean-webpack-plugin')
    3. const CopyWebpackPlugin = require('copy-webpack-plugin')
    4. module.exports = (env, argv) => {
    5. let config = {...} // 默认配置
    6. if (env === 'production') {
    7. config.mode = 'production'
    8. config.plugins = [
    9. ...config.plugins,
    10. new CleanWebpackPlugin(),
    11. new CopyWebpackPlugin(['public'])
    12. ]
    13. }
    14. return config
    15. }

    第二种方式
    yarn add webpack-merge —dev

    1. // webpack.common.js
    1. // webpack.dev.js
    2. const common = require('./webpack.common.js')
    3. const merge = require('webpack-merge')
    4. module.exports = merge(common, {
    5. mode: 'development'
    6. })
    1. // webpack.prod.js
    2. const common = require('./webpack.common.js')
    3. const merge = require('webpack-merge')
    4. const { CleanWebpackPlugin } = require('clean-webpack-plugin')
    5. const CopyWebpackPlugin = require('copy-webpack-plugin')
    6. module.exports = merge(common, {
    7. mode: 'production',
    8. plugins: [
    9. new CleanWebpackPlugin(),
    10. new CopyWebpackPlugin(['public'])
    11. ]
    12. })

    webpack构建速度和打包体积优化策略:https://segmentfault.com/a/1190000021952886