d080ca2cc6
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
76 lines
1.8 KiB
JavaScript
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;
|