webpack.prod.js 905 Bytes
const { merge } = require('webpack-merge');
const baseConfig = require('./webpack.base');
const CssMinimizerWebpackPlugin = require('css-minimizer-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const CompressionWebpackPlugin = require('compression-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = merge(baseConfig, {
  mode: 'production',
  externals: {
    react: 'React',
    'react-dom': 'ReactDOM',
    'dayjs': 'dayjs',
    'antd': 'antd',
  },
  optimization: {
    minimize: true,
    minimizer: [
      new CompressionWebpackPlugin(),
      new TerserPlugin({
        extractComments: false,
        test: /\.js(\?.*)?$/i,
        exclude: /node_modules/,
      }),
      new MiniCssExtractPlugin({
        filename: './styles/[name]-[contenthash].css',
      }),
      new CssMinimizerWebpackPlugin(),
    ],
  },
});