Skip to content

Commit 90d3b7f

Browse files
alan-agius4mmalerba
authored andcommitted
build: align VSCode extension build with vsce (angular#64220)
This commit refactors the VSCode extension's build and launch configurations to align with `vsce` and `pnpm` workspaces. The following changes are included: - Updated `.vscode/launch.json` to use new `vsce:` prefixed tasks and simplified launch configurations. - Updated `.vscode/tasks.json` to use `pnpm` workspace commands for watching and packaging the extension. - Adjusted `BUILD.bazel` and `package.json` files to reflect the new build output paths. These changes streamline the development workflow for the VSCode extension, making it easier to build, debug, and package. PR Close angular#64220
1 parent b49db16 commit 90d3b7f

File tree

6 files changed

+28
-81
lines changed

6 files changed

+28
-81
lines changed

.vscode/launch.json

Lines changed: 15 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -5,90 +5,44 @@
55
{
66
"type": "extensionHost",
77
"request": "launch",
8-
"name": "Launch Dev Client",
8+
"name": "VSCE: Launch Dev Client",
99
"runtimeExecutable": "${execPath}",
1010
"args": [
1111
"--disable-extensions",
12-
"--extensionDevelopmentPath=${workspaceFolder}"
12+
"--extensionDevelopmentPath=${workspaceFolder}/vscode-ng-language-service"
1313
],
1414
"outFiles": [
15-
"${workspaceFolder}/dist/bin/vscode-ng-language-service/client/src/*.js"
15+
"${workspaceFolder}/dist/bin/vscode-ng-language-service/client/index.js",
16+
"${workspaceFolder}/dist/bin/vscode-ng-language-service/server/index.js"
1617
],
17-
"preLaunchTask": {
18-
"type": "npm",
19-
"script": "vscode:watch"
20-
}
18+
"preLaunchTask": "vsce: watch bundles"
2119
},
2220
{
2321
"type": "extensionHost",
2422
"request": "launch",
25-
"name": "Launch Prod Client",
23+
"name": "VSCE: Launch Prod Client",
2624
"runtimeExecutable": "${execPath}",
2725
"args": [
28-
"--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/npm"
26+
"--disable-extensions",
27+
"--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/npm/vscode-ng-language-service/vsix_sandbox"
2928
],
3029
"sourceMaps": false,
31-
"preLaunchTask": "build vsix"
30+
"preLaunchTask": "vsce: package"
3231
},
3332
{
3433
"type": "node",
3534
"request": "attach",
36-
"name": "Attach to Server",
35+
"name": "VSCE: Attach to Server",
3736
"port": 6009,
3837
"restart": true,
39-
"outFiles": [
40-
"${workspaceFolder}/dist/bin/vscode-ng-language-service/server/src/*.js"
41-
]
42-
},
43-
{
44-
"type": "node",
45-
"request": "attach",
46-
"name": "Attach to Jasmine",
47-
"port": 9229,
48-
"restart": true,
49-
"outFiles": [
50-
"${workspaceFolder}/dist/bin/vscode-ng-language-service/**/*.js"
51-
],
52-
},
53-
{
54-
"name": "Integration test: Attach to server",
55-
"port": 9330,
56-
"request": "attach",
57-
"skipFiles": [
58-
"<node_internals>/**"
59-
],
60-
"outFiles": [
61-
"${workspaceFolder}/dist/bin/vscode-ng-language-service/integration/lsp/*.js"
62-
],
63-
"type": "node"
64-
},
65-
{
66-
"name": "E2E Test",
67-
"type": "extensionHost",
68-
"request": "launch",
69-
"runtimeExecutable": "${execPath}",
70-
"args": [
71-
"--disable-extensions",
72-
"--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/npm",
73-
"--extensionTestsPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/integration/e2e/jasmine",
74-
"${workspaceFolder}/vscode-ng-language-service/integration/project"
75-
],
76-
"outFiles": [
77-
"${workspaceFolder}/dist/bin/vscode-ng-language-service/integration/e2e/*.js"
78-
],
79-
"preLaunchTask": {
80-
"type": "npm",
81-
"script": "compile:integration"
82-
}
38+
"skipFiles": ["<node_internals>/**"],
39+
"outFiles": ["${workspaceFolder}/dist/bin/vscode-ng-language-service/server/index.js"]
8340
}
8441
],
8542
"compounds": [
8643
{
87-
"name": "Dev Client + Server",
88-
"configurations": [
89-
"Launch Dev Client",
90-
"Attach to Server"
91-
]
44+
"name": "VSCE: Dev Client + Server",
45+
"configurations": ["VSCE: Launch Dev Client", "VSCE: Attach to Server"]
9246
}
9347
]
94-
}
48+
}

.vscode/tasks.json

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,9 @@
22
"version": "2.0.0",
33
"tasks": [
44
{
5-
"type": "npm",
6-
"script": "compile",
7-
"group": "build",
8-
"presentation": {
9-
"panel": "dedicated",
10-
"reveal": "never"
11-
},
12-
"problemMatcher": [
13-
"$tsc"
14-
]
15-
},
16-
{
17-
"type": "npm",
18-
"script": "vscode:watch",
5+
"type": "shell",
6+
"label": "vsce: watch bundles",
7+
"command": "pnpm --filter=ng-template run watch",
198
"isBackground": true,
209
"group": {
2110
"kind": "build",
@@ -36,8 +25,8 @@
3625
},
3726
{
3827
"type": "shell",
39-
"label": "build vsix",
40-
"command": "pnpm bazel build //vscode-ng-language-service:npm --config=release"
28+
"label": "vsce: package",
29+
"command": "pnpm --filter=ng-template run package"
4130
}
4231
]
4332
}

vscode-ng-language-service/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ expand_template_rule(
2626
"0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}",
2727
},
2828
substitutions = {
29-
"./bazel-bin/client/src/extension": "./index",
29+
"../dist/bin/vscode-ng-language-service/client/index": "./index",
3030
},
3131
template = "package.json",
3232
)

vscode-ng-language-service/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,11 +242,11 @@
242242
"onLanguage:html",
243243
"onLanguage:typescript"
244244
],
245-
"main": "./bazel-bin/client/src/extension",
245+
"main": "../dist/bin/vscode-ng-language-service/client/index",
246246
"scripts": {
247247
"build:syntaxes": "bazel run //vscode-ng-language-service/syntaxes:syntaxes",
248-
"watch": "ibazel build //vscode-ng-language-service:index.js //vscode-ng-language-service/server:index.js",
249-
"package": "pnpm bazel build //vscode-ng-language-service:npm --config=release",
248+
"watch": "ibazel build //vscode-ng-language-service/client:index //vscode-ng-language-service/server:index",
249+
"package": "bazel build //vscode-ng-language-service:npm --config=release",
250250
"test": "bazel test --test_tag_filters=unit_test //vscode-ng-language-service/...",
251251
"test:watch": "ibazel test --test_tag_filters=unit_test //vscode-ng-language-service/...",
252252
"test:lsp": "bazel test --test_output=streamed //vscode-ng-language-service/integration/lsp:test",

vscode-ng-language-service/server/BUILD.bazel

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ expand_template_rule(
7171
stamp_substitutions = {
7272
"0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}",
7373
},
74+
substitutions = {
75+
"../../dist/bin/vscode-ng-language-service/server/index.js": "./index.js",
76+
},
7477
template = "package.json",
7578
)
7679

vscode-ng-language-service/server/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"engines": {
1212
"node": "^20.11.1 || ^22.11.0"
1313
},
14+
"main": "../../dist/bin/vscode-ng-language-service/server/index.js",
1415
"bin": {
1516
"ngserver": "./bin/ngserver"
1617
},

0 commit comments

Comments
 (0)