text: const path = require('path')
  const HtmlWebpackPlugin = require('html-webpack-plugin')
  const CleanWebpackPlugin = require('clean-webpack-plugin')
  const CopyWebpackPlugin = require('copy-webpack-plugin')
  
  module.exports = {
    entry: [
      // polyfills
      require.resolve('./polyfills'),
      // app entry
      './src/index.js'
    ],
    output: {
      path: path.resolve(__dirname, 'dist'),
      filename: 'bundle.[hash:8].js',
    },
    module: {
      rules: [
        {
          exclude: [
            /\.html$/,
            /\.(js|jsx)(\?.*)?$/,
            /\.(css|sass|scss|less)(\?.*)?$/,
            /\.json$/,
            /\.bmp$/,
            /\.gif$/,
            /\.jpe?g$/,
            /\.png$/,
          ],
          use: [
            {
              loader: require.resolve('file-loader'),
              options: {
                name: '[name].[hash:8].[ext]',
              },
            },
          ],
        },
        {
          test: /\.css$/,
          use: [
            { loader: 'style-loader', },
            {
              loader: 'css-loader',
              options: {
                modules: true,
              },
            },
          ],
        },
        {
          test: /\.(js|jsx)$/,
          use: 'babel-loader',
        },
        {
          test: [ /\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, ],
          use: [
            {
              loader: require.resolve('url-loader'),
              options: {
                limit: 10000,
                name: '[name].[hash:8].[ext]',
              },
            },
          ],
        },
      ],
    },
    plugins: [
      new CleanWebpackPlugin([ 'dist', ]),
      new HtmlWebpackPlugin({ template: './src/index.html', }),
      new CopyWebpackPlugin([
        // e.g: { from: 'src/favicon.ico' },
      ]),
    ],
    node: {
      dgram: 'empty',
      fs: 'empty',
      net: 'empty',
      tls: 'empty',
    },
  }
  