text: // For info about this file refer to webpack and webpack-hot-middleware documentation
  // For info on how we're generating bundles with hashed filenames for cache busting: https://medium.com/@okonetchnikov/long-term-caching-of-static-assets-with-webpack-1ecb139adb95#.w99i89nsz
  import webpack from 'webpack';
  import ExtractTextPlugin from 'extract-text-webpack-plugin';
  import WebpackMd5Hash from 'webpack-md5-hash';
  import HtmlWebpackPlugin from 'html-webpack-plugin';
  import autoprefixer from 'autoprefixer';
  import path from 'path';
  
  const GLOBALS = {
    'process.env.NODE_ENV': JSON.stringify('production'),
    __DEV__: false,
    __API__: JSON.stringify("https://api.karaoke.lividliquid.com")
  };
  
  export default {
    resolve: {
      extensions: ['*', '.js', '.jsx', '.json']
    },
    devtool: 'source-map', // more info:https://webpack.js.org/guides/production/#source-mapping and https://webpack.js.org/configuration/devtool/
    entry: path.resolve(__dirname, 'src/index'),
    target: 'web',
    output: {
      path: path.resolve(__dirname, 'dist'),
      publicPath: '/',
      filename: '[name].[chunkhash].js'
    },
    plugins: [
      // Hash the files using MD5 so that their names change when the content changes.
      new WebpackMd5Hash(),
  
      // Tells React to build in prod mode. https://facebook.github.io/react/downloads.html
      new webpack.DefinePlugin(GLOBALS),
  
      // Generate an external css file with a hash in the filename
      new ExtractTextPlugin('[name].[contenthash].css'),
  
      // Generate HTML file that contains references to generated bundles. See here for how this works: https://github.com/ampedandwired/html-webpack-plugin#basic-usage
      new HtmlWebpackPlugin({
        template: 'src/index.ejs',
        favicon: 'src/favicon.png',
        minify: {
          removeComments: true,
          collapseWhitespace: true,
          removeRedundantAttributes: true,
          useShortDoctype: true,
          removeEmptyAttributes: true,
          removeStyleLinkTypeAttributes: true,
          keepClosingSlash: true,
          minifyJS: true,
          minifyCSS: true,
          minifyURLs: true
        },
        inject: true
      }),
  
      // Minify JS
      new webpack.optimize.UglifyJsPlugin({ sourceMap: true }),
  
      new webpack.LoaderOptionsPlugin({
        minimize: true,
        debug: false,
        noInfo: true, // set to false to see a list of every file being bundled.
        options: {
          sassLoader: {
            includePaths: [path.resolve(__dirname, 'src', 'scss')]
          },
          context: '/',
          postcss: () => [autoprefixer],
        }
      })
    ],
    module: {
      rules: [
        {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'},
        {test: /\.eot(\?v=\d+.\d+.\d+)?$/, loader: 'url-loader?name=[name].[ext]'},
        {test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff&name=[name].[ext]'},
        {test: /\.[ot]tf(\?v=\d+.\d+.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/octet-stream&name=[name].[ext]'},
        {test: /\.svg(\?v=\d+.\d+.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=image/svg+xml&name=[name].[ext]'},
        {test: /\.(jpe?g|png|gif)$/i, loader: 'file-loader?name=[name].[ext]'},
        {test: /\.ico$/, loader: 'file-loader?name=[name].[ext]'},
        {test: /(\.css|\.scss|\.sass)$/, loader: ExtractTextPlugin.extract('css-loader?sourceMap!postcss-loader!sass-loader?sourceMap')}
      ]
    }
  };
  