const { mergeWithRules } = require('webpack-merge'); const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const commonConfig = require('./webpack.common'); module.exports = mergeWithRules({ module: { rules: { test: 'match', use: 'replace', }, }, })(commonConfig, { mode: 'production', // TODO: no source maps, add back devtool: false, module: { rules: [ { test: /\.css$/, use: [MiniCssExtractPlugin.loader, 'css-loader'], }, ], }, optimization: { minimizer: ['...', new CssMinimizerPlugin()], splitChunks: { chunks: 'all', }, }, plugins: [ new MiniCssExtractPlugin({ filename: '[name].[contenthash].css', }), ], output: { pathinfo: false, filename: '[name].[contenthash].js', }, });