const merge = require('webpack-merge'); const path = require('path'); const workboxPlugin = require('workbox-webpack-plugin'); const common = require('./webpack.common'); const SRC_DIR = path.join(__dirname, '../src'); const DIST_DIR = path.join(__dirname, '../dist'); module.exports = (env, argv) => { const commonConfig = common(env, argv); return merge(commonConfig, { mode: 'production', stats: { colors: false, hash: true, timings: true, assets: true, chunks: true, chunkModules: true, modules: true, children: true, warnings: true, }, optimization: { minimize: true, sideEffects: true, }, output: { path: DIST_DIR, filename: '[name].bundle.[chunkhash].js', }, module: { rules: [ { test: /\.(gif|jpe?g|png|svg)$/i, use: [ { loader: 'url-loader', options: { limit: 8192, }, }, ], }, { test: /\.(ttf|eot|woff|woff2)$/i, use: [ { loader: 'url-loader', options: { limit: 50000, }, }, ], }, ], }, plugins: [ new workboxPlugin.GenerateSW({ swDest: 'sw.js', clientsClaim: true, skipWaiting: true, }), ], }); };