-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.js
39 lines (35 loc) · 853 Bytes
/
build.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
const fs = require("fs");
const esbuild = require("esbuild");
/**
* Minify CSS files and import them as text
* @type {esbuild.Plugin} */
const minifyTextualCssPlugin = {
name: "minified-css-text",
setup(build) {
build.onLoad({ filter: /.css$/ }, async (args) => {
const src = await fs.promises.readFile(args.path, "utf8");
const { code: contents, warnings } = await esbuild.transform(src, {
loader: "css",
minify: true,
});
return {
loader: "text",
contents: contents.trim(),
warnings,
};
});
},
};
esbuild
.build({
entryPoints: ["src/main.ts"],
bundle: true,
minify: true,
target: ["firefox87"],
outfile: "dist/main.js",
plugins: [minifyTextualCssPlugin],
})
.catch((error) => {
console.error(error);
process.exit(1);
});