'use strict';
const path = require('path');
const merge = require('webpack-merge');
const webpack = require('webpack');
const ServerConfig = require('./webpack.server');
const webpackCommonConfig = require('./webpack.common');
const {BaseHrefWebpackPlugin} = require('@angular/cli/plugins/webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
// Print server configuration
//process.stdout.write('webpack.server: ' + JSON.stringify(ServerConfig) + '\n');
//process.stdout.write('webpack.common: ' + JSON.stringify(webpackCommonConfig) + '\n');
var currentTime = new Date().getTime();
const params = {
// entryPoints: [
// '/scripts/inline',
// '/scripts/polyfills',
// '/scripts/vendor',
// '/scripts/main',
// '/scripts/sw-register',
// '/scripts/scripts',
// '/scripts/styles'
// ]
};
module.exports = function (env) {
const webpackDevConfig = {
devtool: "source-map",
devServer: ServerConfig(env),
module: {
rules: [
{test: /\.(eot|svg)$/, loader: "file-loader?name=scripts/fonts/[name].[hash:20].[ext]"},
{
test: /\.(jpg|png|gif|otf|ttf|woff|woff2|cur|ani)$/,
loader: "url-loader?name=scripts/images/[name].[hash:20].[ext]&limit=10000"
}
]
},
output: {
path: path.join(process.cwd(), "dist"),
filename: "[name]." + currentTime + ".bundle.js",
chunkFilename: "[id].chunk.js"
//publicPath: "/"
},
plugins: [
// Replace /sdc1 inside index.html with '' (because /sdc1 is used only in production).
new CopyWebpackPlugin([
{
from: './src/index.html', transform: function (content, path) {
content = (content + '').replace(/\/sdc1/g, '');
content = (content + '').replace(/\.bundle/g, '.' + currentTime + '.bundle');
return content;
}
}
]),
new webpack.DefinePlugin({
__DEBUG__: JSON.stringify(true),
__ENV__: JSON.stringify('dev'),
__HMR__: JSON.stringify('HMR')
}),
new webpack.HotModuleReplacementPlugin()
]
};
return merge(webpackDevConfig, webpackCommonConfig(params));
}