text: const path = require('path');
  const CleanWebpackPlugin = require('clean-webpack-plugin');
  const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
  const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
  const AssetsWebpackPlugin = require('assets-webpack-plugin');
  
  const extractSass = new MiniCssExtractPlugin({
    filename: `even.[contenthash:8].min.css`
  });
  
  const cleanBuild = new CleanWebpackPlugin([
    'static/dist/*'
  ]);
  
  const assetsManifest = new AssetsWebpackPlugin({
    filename: 'assets.json',
    path: path.join(__dirname, 'data/even'),
    fullPath: false,
    processOutput: assets => {
      const output = {};
      Object.keys(assets)
          .filter(bundle => bundle !== '')
          .forEach(bundle => output[bundle] = assets[bundle]);
      return JSON.stringify(output, null, 2);
    }
  });
  
  module.exports = {
    mode: 'production',
    devtool: 'source-map',
    entry: {
      even: path.join(__dirname, 'src/js/main.js')
    },
    output: {
      path: path.join(__dirname, 'static/dist'),
      filename: `[name].[contenthash:8].min.js`,
      chunkFilename: '[name].[contenthash:8].min.js',
    },
    module: {
      rules: [
        {
          test: /\.js$/,
          exclude: /node_modules/,
          loader: 'babel-loader'
        },
        {
          test: /\.scss$/,
          use: [
            MiniCssExtractPlugin.loader,
            {
              loader: 'css-loader', options: { minimize: true, sourceMap: true }
            }, {
              loader: 'postcss-loader', options: { sourceMap: true }
            }, {
              loader: 'sass-loader', options: { sourceMap: true }
            }
          ]
        },
        {
          test: /iconfont\.(woff|woff2|eot|ttf|otf|svg)$/,
          use: ['file-loader?name=[path][name].[ext]?hash=[hash:7]']
        },
        {
          test: /apple-chancery-webfont\.(woff|woff2|eot|ttf|otf|svg)$/,
          use: ['file-loader?name=[path][name].[ext]']
        }
      ]
    },
    plugins: [extractSass, assetsManifest, cleanBuild],
    optimization: {
      minimizer: [
        new UglifyJsPlugin({
          parallel: true,
          sourceMap: true,
        }),
        new OptimizeCSSAssetsPlugin({
          cssProcessorOptions: {
            map: {
              inline: false,
              annotation: true,
            }
          }
        })
      ]
    }
  };
  