Skip to content

Commit f092226

Browse files
committed
feat: use esbuild to bundle the extension
1 parent c9f19d5 commit f092226

File tree

5 files changed

+218
-11
lines changed

5 files changed

+218
-11
lines changed

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ jobs:
2020
exit 1
2121
fi
2222
- name: Publish
23-
run: npm run deploy
23+
run: npm run publish
2424
env:
2525
VSCE_PAT: ${{ secrets.VSCE_PAT }}

.vscodeignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
.github/**
2+
.task/**
13
.vscode/**
24
.vscode-test/**
35
src/**
6+
node_modules/**
7+
Taskfile.yml
48
.gitignore
59
.yarnrc
6-
vsc-extension-quickstart.md
710
**/tsconfig.json
811
**/.eslintrc.json
912
**/*.map

Taskfile.yml

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,61 @@
11
version: '3'
22

33
tasks:
4+
node_modules:
5+
run: once
6+
desc: Install node modules
7+
sources:
8+
- package.json
9+
- yarn.lock
10+
generates:
11+
- node_modules/**/*
12+
cmds:
13+
- yarn install
14+
415
test:
516
desc: Run tests
17+
deps: [node_modules]
618
cmds:
719
- yarn run test
820

921
lint:
1022
desc: Run linter checks
23+
deps: [node_modules]
1124
cmds:
1225
- yarn run lint
1326

14-
package:
15-
desc: Package extension into a .vsix file
16-
preconditions:
17-
- sh: command -v vsce
18-
msg: "vcse is required to package/publish\nhttps://code.visualstudio.com/api/working-with-extensions/publishing-extension"
27+
bundle:
28+
desc: Bundle the extension into a single JS file
29+
deps: [node_modules, clean-build]
1930
sources:
2031
- src/**/*
2132
- package.json
33+
generates:
34+
- out/extension.js
35+
cmds:
36+
- yarn run bundle
37+
38+
package:
39+
desc: Package extension into a .vsix file
40+
deps: [node_modules, bundle]
41+
sources:
42+
- README.md
43+
- CHANGELOG.md
44+
- LICENSE
45+
- res/**/*
46+
- out/extension.js
2247
generates:
2348
- "*.vsix"
2449
cmds:
25-
- vsce package --yarn
50+
- yarn run package
51+
52+
clean-build:
53+
cmds:
54+
- rm -rf out
55+
- rm -rf *.vsix
56+
57+
clean:
58+
cmds:
59+
- task: clean-build
60+
- rm -rf .task
61+
- rm -rf node_modules

package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,13 +268,15 @@
268268
}
269269
},
270270
"scripts": {
271-
"vscode:prepublish": "yarn run compile",
271+
"bundle": "esbuild ./src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node --minify",
272272
"compile": "tsc -p ./",
273273
"watch": "tsc -watch -p ./",
274274
"pretest": "yarn run compile && yarn run lint",
275275
"lint": "eslint src --ext ts",
276276
"test": "node ./out/test/runTest.js",
277-
"deploy": "vsce publish --yarn"
277+
"package": "vsce package --yarn",
278+
"publish": "vsce publish --yarn",
279+
"vscode:prepublish": "yarn run bundle"
278280
},
279281
"devDependencies": {
280282
"@types/glob": "^8.1.0",
@@ -285,10 +287,12 @@
285287
"@typescript-eslint/parser": "^5.53.0",
286288
"@vscode/test-electron": "^2.2.3",
287289
"@vscode/vsce": "^2.18.0",
290+
"esbuild": "^0.17.12",
288291
"eslint": "^8.34.0",
289292
"glob": "^8.1.0",
290293
"mocha": "^10.2.0",
291-
"typescript": "^4.9.5"
294+
"typescript": "^4.9.5",
295+
"vsce": "^2.15.0"
292296
},
293297
"dependencies": {
294298
"@octokit/types": "^9.0.0",

yarn.lock

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,116 @@
22
# yarn lockfile v1
33

44

5+
"@esbuild/[email protected]":
6+
version "0.17.12"
7+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz#15a8e2b407d03989b899e325151dc2e96d19c620"
8+
integrity sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==
9+
10+
"@esbuild/[email protected]":
11+
version "0.17.12"
12+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.12.tgz#677a09297e1f4f37aba7b4fc4f31088b00484985"
13+
integrity sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==
14+
15+
"@esbuild/[email protected]":
16+
version "0.17.12"
17+
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.12.tgz#b292729eef4e0060ae1941f6a021c4d2542a3521"
18+
integrity sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==
19+
20+
"@esbuild/[email protected]":
21+
version "0.17.12"
22+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz#efa35318df931da05825894e1787b976d55adbe3"
23+
integrity sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==
24+
25+
"@esbuild/[email protected]":
26+
version "0.17.12"
27+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz#e7b54bb3f6dc81aadfd0485cd1623c648157e64d"
28+
integrity sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==
29+
30+
"@esbuild/[email protected]":
31+
version "0.17.12"
32+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz#99a18a8579d6299c449566fe91d9b6a54cf2a591"
33+
integrity sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==
34+
35+
"@esbuild/[email protected]":
36+
version "0.17.12"
37+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz#0e090190fede307fb4022f671791a50dd5121abd"
38+
integrity sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==
39+
40+
"@esbuild/[email protected]":
41+
version "0.17.12"
42+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz#7fe2a69f8a1a7153fa2b0f44aabcadb59475c7e0"
43+
integrity sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==
44+
45+
"@esbuild/[email protected]":
46+
version "0.17.12"
47+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz#b87c76ebf1fe03e01fd6bb5cfc2f3c5becd5ee93"
48+
integrity sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==
49+
50+
"@esbuild/[email protected]":
51+
version "0.17.12"
52+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz#9e9357090254524d32e6708883a47328f3037858"
53+
integrity sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==
54+
55+
"@esbuild/[email protected]":
56+
version "0.17.12"
57+
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz#9deb605f9e2c82f59412ddfefb4b6b96d54b5b5b"
58+
integrity sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==
59+
60+
"@esbuild/[email protected]":
61+
version "0.17.12"
62+
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz#6ef170b974ddf5e6acdfa5b05f22b6e9dfd2b003"
63+
integrity sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==
64+
65+
"@esbuild/[email protected]":
66+
version "0.17.12"
67+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz#1638d3d4acf1d34aaf37cf8908c2e1cefed16204"
68+
integrity sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==
69+
70+
"@esbuild/[email protected]":
71+
version "0.17.12"
72+
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz#135b6e9270a8e2de2b9094bb21a287517df520ef"
73+
integrity sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==
74+
75+
"@esbuild/[email protected]":
76+
version "0.17.12"
77+
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz#21e40830770c5d08368e300842bde382ce97d615"
78+
integrity sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==
79+
80+
"@esbuild/[email protected]":
81+
version "0.17.12"
82+
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz#76c1c199871d48e1aaa47a762fb9e0dca52e1f7a"
83+
integrity sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==
84+
85+
"@esbuild/[email protected]":
86+
version "0.17.12"
87+
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz#c7c3b3017a4b938c76c35f66af529baf62eac527"
88+
integrity sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==
89+
90+
"@esbuild/[email protected]":
91+
version "0.17.12"
92+
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz#05d04217d980e049001afdbeacbb58d31bb5cefb"
93+
integrity sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==
94+
95+
"@esbuild/[email protected]":
96+
version "0.17.12"
97+
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz#cf3862521600e4eb6c440ec3bad31ed40fb87ef3"
98+
integrity sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==
99+
100+
"@esbuild/[email protected]":
101+
version "0.17.12"
102+
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz#43dd7fb5be77bf12a1550355ab2b123efd60868e"
103+
integrity sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==
104+
105+
"@esbuild/[email protected]":
106+
version "0.17.12"
107+
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz#9940963d0bff4ea3035a84e2b4c6e41c5e6296eb"
108+
integrity sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==
109+
110+
"@esbuild/[email protected]":
111+
version "0.17.12"
112+
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz#3a11d13e9a5b0c05db88991b234d8baba1f96487"
113+
integrity sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==
114+
5115
"@eslint-community/eslint-utils@^4.2.0":
6116
version "4.2.0"
7117
resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz"
@@ -940,6 +1050,34 @@ entities@~2.1.0:
9401050
resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz"
9411051
integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
9421052

1053+
esbuild@^0.17.12:
1054+
version "0.17.12"
1055+
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.12.tgz#2ad7523bf1bc01881e9d904bc04e693bd3bdcf2f"
1056+
integrity sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==
1057+
optionalDependencies:
1058+
"@esbuild/android-arm" "0.17.12"
1059+
"@esbuild/android-arm64" "0.17.12"
1060+
"@esbuild/android-x64" "0.17.12"
1061+
"@esbuild/darwin-arm64" "0.17.12"
1062+
"@esbuild/darwin-x64" "0.17.12"
1063+
"@esbuild/freebsd-arm64" "0.17.12"
1064+
"@esbuild/freebsd-x64" "0.17.12"
1065+
"@esbuild/linux-arm" "0.17.12"
1066+
"@esbuild/linux-arm64" "0.17.12"
1067+
"@esbuild/linux-ia32" "0.17.12"
1068+
"@esbuild/linux-loong64" "0.17.12"
1069+
"@esbuild/linux-mips64el" "0.17.12"
1070+
"@esbuild/linux-ppc64" "0.17.12"
1071+
"@esbuild/linux-riscv64" "0.17.12"
1072+
"@esbuild/linux-s390x" "0.17.12"
1073+
"@esbuild/linux-x64" "0.17.12"
1074+
"@esbuild/netbsd-x64" "0.17.12"
1075+
"@esbuild/openbsd-x64" "0.17.12"
1076+
"@esbuild/sunos-x64" "0.17.12"
1077+
"@esbuild/win32-arm64" "0.17.12"
1078+
"@esbuild/win32-ia32" "0.17.12"
1079+
"@esbuild/win32-x64" "0.17.12"
1080+
9431081
escalade@^3.1.1:
9441082
version "3.1.1"
9451083
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
@@ -2263,6 +2401,32 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
22632401
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
22642402
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
22652403

2404+
vsce@^2.15.0:
2405+
version "2.15.0"
2406+
resolved "https://registry.yarnpkg.com/vsce/-/vsce-2.15.0.tgz#4a992e78532092a34a755143c6b6c2cabcb7d729"
2407+
integrity sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==
2408+
dependencies:
2409+
azure-devops-node-api "^11.0.1"
2410+
chalk "^2.4.2"
2411+
cheerio "^1.0.0-rc.9"
2412+
commander "^6.1.0"
2413+
glob "^7.0.6"
2414+
hosted-git-info "^4.0.2"
2415+
keytar "^7.7.0"
2416+
leven "^3.1.0"
2417+
markdown-it "^12.3.2"
2418+
mime "^1.3.4"
2419+
minimatch "^3.0.3"
2420+
parse-semver "^1.1.1"
2421+
read "^1.0.7"
2422+
semver "^5.1.0"
2423+
tmp "^0.2.1"
2424+
typed-rest-client "^1.8.4"
2425+
url-join "^4.0.1"
2426+
xml2js "^0.4.23"
2427+
yauzl "^2.3.1"
2428+
yazl "^2.2.2"
2429+
22662430
webidl-conversions@^3.0.0:
22672431
version "3.0.1"
22682432
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"

0 commit comments

Comments
 (0)