-
Notifications
You must be signed in to change notification settings - Fork 4
/
webpack.config.ts
98 lines (96 loc) · 2.61 KB
/
webpack.config.ts
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import HtmlWebPackPlugin from "html-webpack-plugin";
import path from "path";
import webpack from "webpack";
const config: webpack.Configuration = {
entry: {
index: "./src/scripts/pages/Index.tsx",
builder: "./src/scripts/pages/Builder.tsx",
inventory: "./src/scripts/pages/Inventory.tsx",
spy: "./src/scripts/pages/Spy.tsx",
monitor: "./src/scripts/pages/Monitor.tsx",
history: "./src/scripts/pages/History.tsx",
},
output: {
path: path.resolve(__dirname, "./dist"),
},
module: {
rules: [
{ test: /\.(ts|tsx)$/, use: [{ loader: "ts-loader", options: { configFile: "tsconfig.main.json" } }] },
{ test: /\.less$/i, use: ["style-loader", "css-loader", "less-loader"] },
{ test: /\.css$/i, use: ["style-loader", "css-loader"] },
{ test: /\.html$/i, use: ["html-loader"] },
{ test: /\.mp3$/i, use: [{ loader: "file-loader", options: { name: "[name].[ext]" } }] },
{ test: /\.js$/, enforce: "pre", use: ["source-map-loader"] },
],
},
resolve: {
extensions: [".html", ".css", ".js", ".ts", ".tsx", ".png"],
},
plugins: [
new HtmlWebPackPlugin({
cache: true,
chunks: ["index"],
favicon: "./src/images/favicon.png",
filename: "./index.html",
inject: "body",
minify: false,
scriptLoading: "blocking",
template: "./src/html/index.html",
}),
new HtmlWebPackPlugin({
cache: true,
chunks: ["builder"],
favicon: "./src/images/favicon.png",
filename: "./builder.html",
inject: "body",
minify: false,
scriptLoading: "blocking",
template: "./src/html/index.html",
}),
new HtmlWebPackPlugin({
cache: true,
chunks: ["inventory"],
favicon: "./src/images/favicon.png",
filename: "./inventory.html",
inject: "body",
minify: false,
scriptLoading: "blocking",
template: "./src/html/index.html",
}),
new HtmlWebPackPlugin({
cache: true,
chunks: ["spy"],
favicon: "./src/images/favicon.png",
filename: "./spy.html",
inject: "body",
minify: false,
scriptLoading: "blocking",
template: "./src/html/index.html",
}),
new HtmlWebPackPlugin({
cache: true,
chunks: ["monitor"],
favicon: "./src/images/favicon.png",
filename: "./monitor.html",
inject: "body",
minify: false,
scriptLoading: "blocking",
template: "./src/html/index.html",
}),
new HtmlWebPackPlugin({
cache: true,
chunks: ["history"],
favicon: "./src/images/favicon.png",
filename: "./history.html",
inject: "body",
minify: false,
scriptLoading: "blocking",
template: "./src/html/index.html",
}),
],
watchOptions: {
ignored: ["./dist/**/*", "./node_modules/**"],
aggregateTimeout: 3000,
},
};
export default config;