const webpack = require('webpack'); const merge = require('webpack-merge'); const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const common = require('./webpack.common'); module.exports = merge(common, { mode: 'production', devtool: 'none', output: { filename: '[name].[contenthash].min.js', chunkFilename: '[id].[contenthash].min.js', }, module: { rules: [ { test: /\.(sa|sc|c)ss$/, use: [ 'style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader', ] } ] }, plugins: [ new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1, }), new MiniCssExtractPlugin({ filename: '[name].[contenthash].min.css', sourceMap: true, }), ], optimization: { minimizer: [ new UglifyJsPlugin(), new OptimizeCssAssetsPlugin(), ], }, });