-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathbuild
52 lines (40 loc) · 1.14 KB
/
build
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
#!/usr/bin/env node
const colors = require("colors");
const fs = require("fs");
const logger = require("js-logger");
const path = require("path");
const proc = require("child_process");
const { build } = require("esbuild");
const log = logger.get("Build");
logger.setDefaults({ useDefaults: true });
const options = {
bundle: true,
minify: true,
sourcemap: true,
target: "es6",
platform: "node",
external: ["homebridge"],
logLevel: "error",
legalComments: "none",
};
const tasks = [
{
input: path.resolve(__dirname, "src/index.ts"),
output: path.resolve(__dirname, "lib/index.js"),
},
];
const jobs = [];
fs.rmSync(path.resolve(__dirname, "lib"), { recursive: true, force: true });
for (let i = 0; i < tasks.length; i++) {
const task = tasks[i];
log.info(`esbuild ${colors.cyan(task.output)}`);
jobs.push(build({ ...options, entryPoints: [task.input], outfile: task.output }));
}
Promise.all(jobs)
.then(() => {
log.info(`${colors.green("BUILD COMPLETE")}\n`);
})
.catch((error) => {
log.error(error);
log.error(`${colors.red("BUILD FAILED")}\n`);
});