text: const path = require('path');
  const webpack = require('webpack');
  const HTMLWebpackPlugin = require('html-webpack-plugin');
  const config = require('config');
  
  /*-------------------------------------------------*/
  
  module.exports = {
      // webpack optimization mode
      mode: ( process.env.NODE_ENV ? process.env.NODE_ENV : 'development' ),
  
      // entry file(s)
      entry: './src/index.js',
  
      // output file(s) and chunks
      output: {
          library: 'UserList',
          libraryTarget: 'umd',
          libraryExport: 'default',
          path: path.resolve(__dirname, 'dist'),
          filename: 'index.js',
          publicPath: config.get('publicPath'),
          chunkFilename: "[contenthash].js"
      },
  
      optimization: {
          splitChunks: {
             name: 'hashed',
             chunks: 'initial',
             cacheGroups: {
                  vendor: {
                      test: /[\\/]node_modules[\\/]/,
                      chunks: 'all',
                      name: 'vendor',
                      enforce: true,
                      minChunks: 3
                  }
              }
          }
      },
  
      // module/loaders configuration
      module: {
          rules: [
              {
                  test: /\.js$/,
                  exclude: /node_modules/,
                  use: ['babel-loader']
              },
              {
                  test: /\.scss$/,
                  use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader']
              }
          ]
      },
  
      plugins: [
          new HTMLWebpackPlugin({
              template: path.resolve(__dirname, 'index.html')
          })
      ],
  
      optimization: {
          minimize: true
      },
  
      // development server configuration
      devServer: {
          
          // must be `true` for SPAs
          historyApiFallback: true,
  
          // open browser on server start
          open: config.get('open')
      },
  
      // generate source map
      devtool: ( 'production' === process.env.NODE_ENV ? 'source-map' : 'cheap-module-eval-source-map' ),
  };
  