webpack定义多个环境和自定义常量

"scripts": {
  "dev": "webpack serve --config webpack.dev.js --env SERVER_ENV=dev --mode=development",
  "build": "webpack --config webpack.prod.js --progress --env SERVER_ENV=prod --mode=production"
},

可以通过--env来携带参数

通过webpack.common.config.js文件来定义公共配置

webpack.prod.js / webpack.dev.js文件里通过webpack-merge函数来合并配置

通告webpack.DefinePlugin插件来自定义环境变量

const {merge} = require("webpack-merge");
const commonConfig = require('./webpack.common')

module.exports = function (env, argv) {
  return merge(commonConfig(env, argv), {
    mode: 'production',
    profile: false,
    devtool: 'hidden-source-map',
    plugins: [
      new webpack.DefinePlugin({
        VERSION: '1.1'
      })
    ],
    optimization: {
      concatenateModules: true,
      usedExports: true,
      minimize: true,
      runtimeChunk: true,
      splitChunks: {
        chunks: 'all',
        minChunks: 2,
        // minSize: 1,
        // maxInitialRequests: 1
        cacheGroups: {

        }
      }
    }
  })
}