var webpack = require('webpack'); var path = require("path"); var config = { entry: "./static/js/main.ts", output: { path: path.resolve(__dirname, "static/build"), filename: 'quay-frontend.js' }, resolve: { extensions: [".ts", ".tsx", ".js", ".scss"], alias: { sass: path.resolve(__dirname, 'static/css/directives/components/pages/') } }, // Use global variables to maintain compatibility with non-Webpack components externals: { angular: "angular", jquery: "$", }, module: { rules: [ { test: /\.tsx?$/, 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', ] }, ] }, 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.plugins.push( new webpack.optimize.UglifyJsPlugin({ sourceMap: true, // Disable mangle to prevent AngularJS errors mangle: false }) ); config.output.filename = 'quay-frontend-[hash].js'; } module.exports = config;