text: const path = require('path');
  const HtmlWebPackPlugin = require('html-webpack-plugin');
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
  const TerserPlugin = require('terser-webpack-plugin');
  const WorkboxPlugin = require('workbox-webpack-plugin');
  
  module.exports = {
    entry: './src/client/index.js',
    mode: 'production',
    output: {
      libraryTarget: 'var',
      library: 'Client',
    },
    optimization: {
      minimizer: [new TerserPlugin({}), new OptimizeCSSAssetsPlugin({})],
    },
    module: {
      rules: [
        {
          test: /\.js$/,
          exclude: /node_modules/,
          loader: 'babel-loader',
        },
        {
          test: /\.s?css$/,
          use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'],
        },
        {
          test: /\.(png|svg|jpe?g|gif)$/i,
          use: ['file-loader'],
        },
        {
          test: /\.html$/i,
          use: ['html-loader'],
        },
      ],
    },
    plugins: [
      new HtmlWebPackPlugin({
        template: './src/client/views/index.html',
        filename: './index.html',
      }),
      new MiniCssExtractPlugin({filename: '[name].css'}),
      new WorkboxPlugin.GenerateSW(),
    ],
    resolve: {
      alias: {
        'modules': path.resolve(__dirname, 'node_modules'),
      },
    },
  };
  