mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
build: use @angular/language-service from source (#64306)
This commit updates the VSCode Angular Language Service extension to use the `@angular/language-service` package built from source within the workspace, rather than a version downloaded from npm. This change simplifies development and testing by ensuring the extension always uses the latest code from the local repository. The Bazel build configuration, VSCode launch settings, and e2e tests have been updated to reflect this change. PR Close #64306
This commit is contained in:
committed by
Andrew Kushnir
parent
461eeda6d9
commit
ad279efd90
Vendored
+1
-1
@@ -20,7 +20,7 @@
|
||||
"runtimeExecutable": "${execPath}",
|
||||
"args": [
|
||||
"--disable-extensions",
|
||||
"--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/npm/vscode-ng-language-service/vsix_sandbox"
|
||||
"--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/development_package"
|
||||
],
|
||||
"preLaunchTask": "VSCE: package"
|
||||
},
|
||||
|
||||
Generated
+10
-18
@@ -1305,12 +1305,9 @@ importers:
|
||||
vscode-ng-language-service:
|
||||
dependencies:
|
||||
'@angular/language-service':
|
||||
specifier: 21.0.0-next.7
|
||||
version: 21.0.0-next.7
|
||||
specifier: workspace:*
|
||||
version: link:../packages/language-service
|
||||
devDependencies:
|
||||
'@angular/core':
|
||||
specifier: 21.0.0-next.7
|
||||
version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7)
|
||||
'@types/jasmine':
|
||||
specifier: ~5.1.9
|
||||
version: 5.1.9
|
||||
@@ -1382,7 +1379,7 @@ importers:
|
||||
dependencies:
|
||||
'@angular/common':
|
||||
specifier: 21.0.0-next.7
|
||||
version: 21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7))(rxjs@7.8.2)
|
||||
version: 21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2))(rxjs@7.8.2)
|
||||
'@angular/compiler':
|
||||
specifier: 21.0.0-next.7
|
||||
version: 21.0.0-next.7
|
||||
@@ -1391,7 +1388,7 @@ importers:
|
||||
version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7)(typescript@5.9.3)
|
||||
'@angular/core':
|
||||
specifier: 21.0.0-next.7
|
||||
version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7)
|
||||
version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2)
|
||||
rxjs:
|
||||
specifier: 7.8.2
|
||||
version: 7.8.2
|
||||
@@ -1406,8 +1403,8 @@ importers:
|
||||
vscode-ng-language-service/server:
|
||||
dependencies:
|
||||
'@angular/language-service':
|
||||
specifier: 21.0.0-next.7
|
||||
version: 21.0.0-next.7
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/language-service
|
||||
typescript:
|
||||
specifier: 5.9.3
|
||||
version: 5.9.3
|
||||
@@ -1753,6 +1750,7 @@ packages:
|
||||
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
||||
peerDependencies:
|
||||
'@angular/compiler': 21.0.0-next.7
|
||||
rxjs: ^6.5.3 || ^7.4.0
|
||||
peerDependenciesMeta:
|
||||
'@angular/compiler':
|
||||
optional: true
|
||||
@@ -1761,10 +1759,6 @@ packages:
|
||||
resolution: {tarball: https://codeload.github.com/angular/domino/tar.gz/93e720f143d0296dd2726ffbcf4fc12283363a7b}
|
||||
version: 2.1.6
|
||||
|
||||
'@angular/language-service@21.0.0-next.7':
|
||||
resolution: {integrity: sha512-aDX+5D+UX/qaakZQM32Z71Iks9TDWaqjYNlMiVePUQSFPh2UZvQ/1a6+iYdhW4rJ7mKOwICIVuIvHlVkGGQ8nw==}
|
||||
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
||||
|
||||
'@angular/material@21.0.0-next.8':
|
||||
resolution: {integrity: sha512-lTv37cioGdq9ko6jESvQ1LiKRX35ozg4cqF8XWs0CGwOt6s9gphntf4zypTEIR1kk/qlHM1Y/2KCew3VYkWUaQ==}
|
||||
peerDependencies:
|
||||
@@ -13583,9 +13577,9 @@ snapshots:
|
||||
rxjs: 7.8.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@angular/common@21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7))(rxjs@7.8.2)':
|
||||
'@angular/common@21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2))(rxjs@7.8.2)':
|
||||
dependencies:
|
||||
'@angular/core': 21.0.0-next.7(@angular/compiler@21.0.0-next.7)
|
||||
'@angular/core': 21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2)
|
||||
rxjs: 7.8.2
|
||||
tslib: 2.8.1
|
||||
|
||||
@@ -13623,7 +13617,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@angular/compiler': link:packages/compiler
|
||||
|
||||
'@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)':
|
||||
'@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2)':
|
||||
dependencies:
|
||||
rxjs: 7.8.2
|
||||
tslib: 2.8.1
|
||||
@@ -13633,8 +13627,6 @@ snapshots:
|
||||
|
||||
'@angular/domino@https://codeload.github.com/angular/domino/tar.gz/93e720f143d0296dd2726ffbcf4fc12283363a7b': {}
|
||||
|
||||
'@angular/language-service@21.0.0-next.7': {}
|
||||
|
||||
'@angular/material@21.0.0-next.8(@angular/cdk@21.0.0-next.8(@angular/common@packages+common)(@angular/core@packages+core)(rxjs@7.8.2))(@angular/common@packages+common)(@angular/core@packages+core)(@angular/forms@packages+forms)(@angular/platform-browser@packages+platform-browser)(rxjs@7.8.2)':
|
||||
dependencies:
|
||||
'@angular/cdk': 21.0.0-next.8(@angular/common@packages+common)(@angular/core@packages+core)(rxjs@7.8.2)
|
||||
|
||||
@@ -23,9 +23,10 @@ expand_template_rule(
|
||||
name = "package_json_expanded",
|
||||
out = "package_expanded.json",
|
||||
stamp_substitutions = {
|
||||
"0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}",
|
||||
"workspace:*": "{{STABLE_PROJECT_VERSION}}",
|
||||
},
|
||||
substitutions = {
|
||||
"workspace:*": "0.0.0",
|
||||
"../dist/bin/vscode-ng-language-service/client/src/extension.js": "./index",
|
||||
},
|
||||
template = "package.json",
|
||||
@@ -34,12 +35,12 @@ expand_template_rule(
|
||||
npm_package(
|
||||
name = "vsix_sandbox",
|
||||
srcs = [
|
||||
"package_expanded.json",
|
||||
"angular.png",
|
||||
"CHANGELOG.md",
|
||||
"README.md",
|
||||
"angular.png",
|
||||
"package_expanded.json",
|
||||
"//vscode-ng-language-service/client:index.js",
|
||||
"//vscode-ng-language-service/server:npm_files",
|
||||
"//vscode-ng-language-service/server:npm_package",
|
||||
"//vscode-ng-language-service/syntaxes:npm_files",
|
||||
# Transitive closure of npm deps that are marked as "external" in esbuild needed for vsce;
|
||||
# this set was determined manually by running `bazel build //:vsix` and burning down missing packages.
|
||||
@@ -56,7 +57,7 @@ npm_package(
|
||||
],
|
||||
replace_prefixes = {
|
||||
"package_expanded.json": "package.json",
|
||||
"server/package_expanded.json": "server/package.json",
|
||||
"server/npm_package/": "server/",
|
||||
"client/": "",
|
||||
"syntaxes/src/": "syntaxes/",
|
||||
},
|
||||
@@ -82,16 +83,14 @@ vsce_bin.vsce(
|
||||
)
|
||||
|
||||
npm_package(
|
||||
name = "npm",
|
||||
name = "development_package",
|
||||
srcs = [
|
||||
":vsix",
|
||||
":vsix_sandbox",
|
||||
],
|
||||
data = [
|
||||
"//vscode-ng-language-service:node_modules/@angular/language-service",
|
||||
],
|
||||
root_paths = [
|
||||
"vsix_sandbox",
|
||||
"vscode-ng-language-service/vsix_sandbox",
|
||||
"vscode-ng-language-service",
|
||||
],
|
||||
visibility = ["//vscode-ng-language-service/integration:__subpackages__"],
|
||||
visibility = ["//vscode-ng-language-service/integration/e2e:__subpackages__"],
|
||||
)
|
||||
|
||||
@@ -70,7 +70,8 @@ export class Version {
|
||||
}
|
||||
|
||||
isVersionZero() {
|
||||
return this.versionStr === '0.0.0';
|
||||
// Handle both `0.0.0`, `0.0.0-PLACEHOLDER` and similar
|
||||
return this.major === 0 && this.minor === 0 && this.patch === 0;
|
||||
}
|
||||
|
||||
toString(): string {
|
||||
|
||||
@@ -30,7 +30,7 @@ js_test(
|
||||
name = "test",
|
||||
data = [
|
||||
":e2e",
|
||||
"//vscode-ng-language-service:npm",
|
||||
"//vscode-ng-language-service:development_package",
|
||||
],
|
||||
entry_point = ":index.js",
|
||||
env = {
|
||||
|
||||
@@ -9,7 +9,7 @@ import {mkdtemp} from 'node:fs/promises';
|
||||
import Xvfb from 'xvfb';
|
||||
|
||||
async function main() {
|
||||
const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'npm/vscode-ng-language-service/vsix_sandbox');
|
||||
const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'development_package');
|
||||
const EXT_TESTS_PATH = join(PACKAGE_ROOT, 'integration', 'e2e', 'jasmine');
|
||||
const xvfb = new Xvfb();
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
"name": "ng-template",
|
||||
"displayName": "Angular Language Service",
|
||||
"description": "Editor services for Angular templates",
|
||||
"version": "20.2.2",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"publisher": "Angular",
|
||||
"icon": "angular.png",
|
||||
"license": "MIT",
|
||||
@@ -246,7 +247,7 @@
|
||||
"scripts": {
|
||||
"build:syntaxes": "bazel run //vscode-ng-language-service/syntaxes:syntaxes",
|
||||
"watch": "ibazel build //vscode-ng-language-service/client/src //vscode-ng-language-service/server/src",
|
||||
"package": "bazel build //vscode-ng-language-service:npm --config=release",
|
||||
"package": "bazel build //vscode-ng-language-service:development_package --config=release",
|
||||
"test": "bazel test --test_tag_filters=unit_test //vscode-ng-language-service/...",
|
||||
"test:watch": "ibazel test --test_tag_filters=unit_test //vscode-ng-language-service/...",
|
||||
"test:lsp": "bazel test --test_output=streamed //vscode-ng-language-service/integration/lsp:test",
|
||||
@@ -257,10 +258,9 @@
|
||||
"test:inspect-syntaxes": "bazel run --config=debug //vscode-ng-language-service/syntaxes/test:test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular/language-service": "21.0.0-next.7"
|
||||
"@angular/language-service": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular/core": "21.0.0-next.7",
|
||||
"@types/jasmine": "~5.1.9",
|
||||
"@types/jasmine-reporters": "~2.5.3",
|
||||
"@types/node": "^24.5.2",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
load("@aspect_bazel_lib//lib:expand_template.bzl", "expand_template_rule")
|
||||
load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild")
|
||||
load("@aspect_rules_js//npm:defs.bzl", "npm_package")
|
||||
load("@aspect_rules_ts//ts:defs.bzl", "ts_config")
|
||||
load("@npm//:defs.bzl", "npm_link_all_packages")
|
||||
|
||||
@@ -73,21 +74,27 @@ expand_template_rule(
|
||||
name = "package_json_expanded",
|
||||
out = "package_expanded.json",
|
||||
stamp_substitutions = {
|
||||
"0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}",
|
||||
"0.0.0-PLACEHOLDER": "{{STABLE_PROJECT_VERSION}}",
|
||||
"workspace:*": "{{STABLE_PROJECT_VERSION}}",
|
||||
},
|
||||
substitutions = {
|
||||
"0.0.0-PLACEHOLDER": "0.0.0",
|
||||
"workspace:*": "0.0.0",
|
||||
"../../dist/bin/vscode-ng-language-service/server/src/server.js": "./index.js",
|
||||
},
|
||||
template = "package.json",
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "npm_files",
|
||||
npm_package(
|
||||
name = "npm_package",
|
||||
srcs = [
|
||||
"README.md",
|
||||
"bin/ngserver",
|
||||
"index.js",
|
||||
"package_expanded.json",
|
||||
],
|
||||
replace_prefixes = {
|
||||
"package_expanded.json": "package.json",
|
||||
},
|
||||
visibility = ["//vscode-ng-language-service:__pkg__"],
|
||||
)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"ngserver": "./bin/ngserver"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular/language-service": "21.0.0-next.7",
|
||||
"@angular/language-service": "workspace:*",
|
||||
"typescript": "5.9.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
Reference in New Issue
Block a user