-
-
Notifications
You must be signed in to change notification settings - Fork 250
/
build.ts
61 lines (58 loc) · 1.34 KB
/
build.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
import {
buildRollup,
createRollupConfig,
extractAPI,
} from "../../scripts/build";
import { promises as asyncFs } from "fs";
import * as path from "path";
import typescript from "@rollup/plugin-typescript";
import { terser } from "rollup-plugin-terser";
import json from "@rollup/plugin-json";
import { RollupOptions } from "rollup";
const external = [
"postcss",
"postcss-selector-parser",
"glob",
"path",
"fs",
"util",
];
const cliBundle: RollupOptions = {
external: [...external, "commander"],
input: "./src/bin.ts",
output: {
banner: "#!/usr/bin/env node",
file: "./bin/purgecss.js",
footer: "main();",
format: "cjs",
},
plugins: [
json(),
typescript({
tsconfig: "./tsconfig.json",
declaration: false,
declarationDir: undefined,
composite: false,
sourceMap: false,
}),
terser(),
],
};
(async () => {
await asyncFs.rm(path.resolve(__dirname, "lib"), {
recursive: true,
force: true,
});
await asyncFs.rm(path.resolve(__dirname, "bin"), {
recursive: true,
force: true,
});
const rollupConfig = createRollupConfig("purgecss", external);
await buildRollup(rollupConfig);
await buildRollup(cliBundle);
await extractAPI(__dirname);
await asyncFs.rm(path.resolve(__dirname, "lib", ".temp"), {
recursive: true,
force: true,
});
})();