-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.dev.js
48 lines (46 loc) · 1.29 KB
/
webpack.dev.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const { pages, plugins, baseWebpackConfig } = require('./webpack.base');
const { merge } = require('webpack-merge');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
process.on('unhandledRejection', error => {
console.error('unhandledRejection', error);
process.exit(1); // To exit with a 'failure' code
});
module.exports = () => {
return merge(baseWebpackConfig, {
devtool: 'inline-source-map',
devServer: {
historyApiFallback: {
rewrites: pages.map(name => {
const routerFragment = name === 'index' ? '' : name;
return {
from: new RegExp('^\\/' + routerFragment + '$'),
to: `/${name}.html`,
};
}),
},
hot: true,
// host: 'local-ip',
host: '0.0.0.0',
open: false,
port: 'auto',
server: 'http',
watchFiles: ['public/**/*'],
},
externals: {
jquery: 'jQuery',
},
plugins: [
// plugins.Dotenv(),
// plugins.DefinePlugin(),
plugins.EnvironmentPlugin(),
plugins.WebpackProvidePlugin(),
new MiniCssExtractPlugin({
filename: 'css/[name].css',
// chunkFilename: 'css/[name]_chunk.css',
ignoreOrder: true,
}),
...plugins.MultiHtmlWebpackPlugins(),
],
target: 'web',
});
};