This repository has been archived by the owner on May 11, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
75 lines (72 loc) · 1.63 KB
/
webpack.config.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
const path = require( "path" );
const webpack = require( "webpack" );
const clientRoot = path.resolve( __dirname, "./" );
const tsConfig = path.resolve( __dirname, './tsconfig.json' );
const CleanWebpackPlugin = require( 'clean-webpack-plugin' );
const HtmlWebpackPlugin = require( "html-webpack-plugin" );
var webpackConfig = {
mode: 'development',
optimization: {
splitChunks: {
chunks: "all",
cacheGroups: {
common: {
test: /[\\/]scripts[\\/]/,
minSize: 0
}
}
}
},
//context: clientRoot,
entry: {
"index": "./modules/main/index",
"module-one": "./modules/module-one/module-one"
},
output: {
path: path.resolve( __dirname, "assets" ),
filename: "js/[name].js",
publicPath: "/assets"
//pathinfo: true <-- defualts to true in dev/false in prod
},
resolve: {
extensions: [ ".ts", ".js" ],
modules: [
clientRoot,
"node_modules"
],
},
module: {
rules: [
{
test: /\.js$/,
loader: 'script-loader',
exclude: /node_modules/
},
{
test: /\.ts$/,
loader: 'ts-loader',
exclude: /node_modules/
}
]
},
plugins: [
new CleanWebpackPlugin( ['assets/*.*', 'assets/js/*.*', 'assets/img/*.*', 'assets/css/*.*'], { verbose: true } ),
new HtmlWebpackPlugin( {
alwaysWriteToDisk: true,
filename: "index.html",
template: "modules/main/index.ejs",
inject: 'body',
chunksSortMode: "dependency",
hash: true
} ),
new HtmlWebpackPlugin( {
alwaysWriteToDisk: true,
filename: "module-one.html",
template: "modules/module-one/module-one.ejs",
inject: 'body',
chunksSortMode: "dependency",
hash: true
} )
]
};
module.exports = webpackConfig;