-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvsix.mjs
More file actions
53 lines (44 loc) · 1.49 KB
/
vsix.mjs
File metadata and controls
53 lines (44 loc) · 1.49 KB
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
import { writeFileSync, mkdirSync } from "fs";
import { copySync } from "fs-extra/esm";
import pkg from "./package.json" with { type: "json" };
const target = process.argv[2];
const platform = process.argv[3];
if (!target) {
throw new Error("Missing target");
}
const { browser, main, scripts, dependencies, devDependencies, version, ...rest } = pkg;
const vsixPkg = {
...rest,
version:
process.env.VSIX_VERSION === "snapshot"
? version +
"-snapshot." +
new Date()
.toISOString()
.substring(0, 19)
.replace("T", "")
.replaceAll("-", "")
.replaceAll(":", "")
: version,
[target === "web" ? "browser" : "main"]: "./extension.js",
};
mkdirSync("dist/vsix", { recursive: true });
mkdirSync(`dist/${target}`, { recursive: true });
writeFileSync(`dist/${target}/package.json`, JSON.stringify(vsixPkg, null, 2));
if (target === "native") {
writeFileSync(
`dist/${target}/.vscodeignore`,
`
prebuilds/**
!prebuilds/${platform}
`
);
}
copySync("LICENSE", `dist/${target}/LICENSE`);
copySync("docs/vscode.md", `dist/${target}/README.md`);
copySync("docs/icon.png", `dist/${target}/icon.png`);
copySync("docs/screenshot.png", `dist/${target}/screenshot.png`);
copySync("docs/screenshot2.png", `dist/${target}/screenshot2.png`);
copySync("docs/screenshot3.png", `dist/${target}/screenshot3.png`);
mkdirSync(`dist/${target}/webview-ui/build`, { recursive: true });
copySync("webview-ui/build", `dist/${target}/webview-ui/build`);