This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
quay/webpack.config.js
Sam Chow d080ca2cc6 Create webpack config for config app
further improve developer morale

get initial angular loading

Add remote css to config index

Starts work to port endpoints into config app

Add the api blueprint
2018-06-12 14:44:15 -04:00

76 lines
1.8 KiB
JavaScript

const webpack = require('webpack');
const path = require('path');
let config = {
entry: "./static/js/main.ts",
output: {
path: path.resolve(__dirname, "static/build"),
publicPath: "/static/build/",
filename: '[name]-quay-frontend.bundle.js',
chunkFilename: '[name]-quay-frontend.chunk.js'
},
resolve: {
extensions: [".ts", ".js"],
},
// Use global variables to maintain compatibility with non-Webpack components
externals: {
angular: "angular",
jquery: "$",
moment: "moment",
"raven-js": "Raven",
},
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',
]
},
]
},
plugins: [
// Replace references to global variables with associated modules
new webpack.ProvidePlugin({
FileSaver: 'file-saver',
angular: "angular",
$: "jquery",
moment: "moment",
}),
// Restrict the extra locales that moment.js can load; en is always included
new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /en/),
],
devtool: "cheap-module-source-map",
};
/**
* Production settings
*/
if (process.env.NODE_ENV === 'production') {
config.plugins.concat([
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
// Disable mangle to prevent AngularJS errors
mangle: false
}),
new webpack.optimize.CommonsChunkPlugin({name: 'common'}),
]);
config.output.filename = '[name]-quay-frontend-[hash].bundle.js';
}
module.exports = config;