-
Notifications
You must be signed in to change notification settings - Fork 6
/
esbuild.js
68 lines (62 loc) · 1.64 KB
/
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const { build } = require("esbuild");
const fs = require("fs");
const path = require("path");
const glob = require("glob");
function copyFiles(srcPattern, destDir) {
glob.sync(srcPattern).forEach((file) => {
const destFile = path.join(destDir, path.basename(file));
fs.copyFileSync(file, destFile);
});
}
const baseConfig = {
bundle: true,
minify: process.env.NODE_ENV === "production",
sourcemap: process.env.NODE_ENV !== "production",
};
const extensionConfig = {
...baseConfig,
outfile: "./out/extension.js",
entryPoints: ["./src/extension.ts"],
external: ["vscode"],
format: "cjs",
platform: "node",
};
const serverConfig = {
...baseConfig,
outfile: "./out/server.js",
entryPoints: ["./server/src/server.ts"],
format: "cjs",
external: ["vscode"],
platform: "node",
};
const webviewConfig = {
...baseConfig,
target: "es2020",
format: "esm",
entryPoints: ["./src/webview/main.ts"],
external: ["vscode"],
outfile: "./out/webview.js",
};
(async () => {
try {
await build(extensionConfig);
console.log("extension build complete");
await build(serverConfig);
console.log("server build complete");
await build(webviewConfig);
copyFiles("src/webview/styles/*.css", "./out");
copyFiles("node_modules/ag-grid-community/styles/ag-grid.min.css", "./out");
copyFiles(
"node_modules/ag-grid-community/styles/ag-theme-alpine.min.css",
"./out",
);
copyFiles(
"node_modules/ag-grid-community/dist/ag-grid-community.min.js",
"./out",
);
console.log("build complete");
} catch (err) {
process.stderr.write(err.stderr);
process.exit(1);
}
})();