-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
36 lines (35 loc) · 1.13 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
const { readFileSync, writeFileSync, existsSync } = require("fs");
const { BannerPlugin } = require("webpack");
const path = require("path");
module.exports = {
mode: "development",
entry: path.join(__dirname, "src", "index.ts"),
module: {
rules: [
{ test: /\.tsx?$/, use: "ts-loader", exclude: /node_modules/, },
{ test: /\.svg$/ , use: "svg-inline-loader" },
{ test: /\.css$/ , use: ["style-loader", "css-loader"] }
]
},
plugins: [
new BannerPlugin({
banner: () => {
const bnumPath = path.join(__dirname, "src", "meta", "build.num");
if (!existsSync(bnumPath)) { writeFileSync(bnumPath, Buffer.from([0, 0, 0, 0])); }
const bnum = readFileSync(bnumPath).readUint32BE();
const bnumBuf = Buffer.allocUnsafe(4);
bnumBuf.writeUInt32BE(bnum + 1);
writeFileSync(bnumPath, bnumBuf);
return readFileSync(path.join(__dirname, "src", "meta", "header.txt"), "utf-8")
.replace("%BUILDNUM%", bnum.toString(36))
.replace("%VERSION%", require("./package.json").version);
},
raw: true
})
],
resolve: { extensions: [".tsx", ".ts", ".js"] },
output: {
path: __dirname,
filename: "aladar.user.js"
}
}