-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathesbuild.js
40 lines (37 loc) · 836 Bytes
/
esbuild.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
40
const esbuild = require("esbuild");
async function start(plugins) {
const opts = {
entryPoints: ["src/index.ts"],
bundle: true,
minify: process.env.NODE_ENV === "production",
sourcemap: process.env.NODE_ENV === "development",
mainFields: ["module", "main"],
external: ["coc.nvim"],
platform: "node",
target: "node14",
outfile: "lib/index.js",
plugins,
};
if (plugins) {
const ctx = await esbuild.context(opts);
await ctx.watch();
} else {
await esbuild.build(opts);
}
}
let plugins = [];
if (process.argv.length > 2 && process.argv[2] === "--watch") {
console.log("watching...");
plugins.push({
name: "watcher",
setup(b) {
let counter = 0;
b.onEnd((result) => {
console.log(`watch build #${counter++} succeeded`);
});
},
});
}
start(plugins).catch((e) => {
console.error(e);
});