text: const webpack = require('webpack');
  const path = require('path');
  const TerserPlugin = require('terser-webpack-plugin');
  
  let config = {
    entry: {
      configapp: "./js/main.ts"
    },
    output: {
      path: path.resolve(__dirname, "static/build"),
      filename: '[name]-quay-frontend.bundle.js',
      chunkFilename: '[name]-quay-frontend.chunk.js'
    },
    resolve: {
      extensions: [".ts", ".js"],
      modules: [
        // Allows us to use the top-level node modules
        path.resolve(__dirname, '../node_modules'),
        path.resolve(__dirname, '../static/css/')
      ]
    },
    externals: {
      angular: "angular",
      jquery: "$",
    },
    module: {
      rules: [
        {
          test: /\.ts$/,
          use: ["ts-loader"],
          exclude: /node_modules/
        },
        {
          test: /\.css$/,
          use: [
            "style-loader",
            "css-loader?minimize=true",
          ],
        },
        {
          test: /\.html$/,
          use: [
            'ngtemplate-loader?relativeTo=' + (path.resolve(__dirname)),
            'html-loader',
          ]
        },
      ]
    },
    optimization: {},
    plugins: [
      // Replace references to global variables with associated modules
      new webpack.ProvidePlugin({
        FileSaver: 'file-saver',
        angular: "angular",
        $: "jquery",
      }),
    ],
    devtool: "cheap-module-source-map",
  };
  
  /**
   * Production settings
   */
  if (process.env.NODE_ENV === 'production') {
    config.optimization.minimizer = [
      new TerserPlugin({
        // Disable mangle to prevent AngularJS errors
        terserOptions: {mangle: false},
        sourceMap: true,
      }),
    ];
    config.output.filename = '[name]-quay-frontend-[hash].bundle.js';
  }
  
  module.exports = config;
  