Vscode-ng-language-service: ngcc-Absturz mit Monorepo / Multi-Projekt-Konfiguration - Ivy Native LS

Erstellt am 18. Dez. 2020  ·  5Kommentare  ·  Quelle: angular/vscode-ng-language-service

Beschreibe den Fehler

Die VSCode-Erweiterung stürzt bei Repositorys mit mehreren tsconfigs ab.

Es scheint zu versuchen, ngcc den node_modules Ordner neben jeder tsconfig.

Fortpflanzen

  1. Aktivieren Sie die Erweiterung in einem Repository wie diesem https://github.com/jscutlery/convoyr
  2. Öffne das app.component.ts

Erwartetes Verhalten

Es sollte nicht abstürzen.

Protokolle

[Info  - 8:18:20 PM] Angular language server process ID: 91911
[Info  - 8:18:20 PM] Using typescript/lib/tsserverlibrary v4.0.5 from /.vscode/extensions/angular.ng-template-0.1101.0-next.1/node_modules/typescript/lib/tsserverlibrary.js
[Info  - 8:18:20 PM] Using @angular/language-service/bundles/ivy v11.1.0-next.3 from /.vscode/extensions/angular.ng-template-0.1101.0-next.1/node_modules/@angular/language-service/bundles/ivy.js
[Info  - 8:18:20 PM] Log file: /Library/Application Support/Code/logs/20201218T201630/exthost3/Angular.ng-template/nglangsvc.log
[Error - 8:18:25 PM] Cannot read file '/dev/jscutlery/convoyr/dev/jscutlery/convoyr/tsconfig.json'.
No inputs were found in config file '/dev/jscutlery/convoyr/dev/jscutlery/convoyr/apps/sandbox/tsconfig.json'. Specified 'include' paths were '["**/*.ts"]' and 'exclude' paths were '[]'.
Error: ENOENT: no such file or directory, scandir '/dev/jscutlery/convoyr/apps/sandbox/node_modules'
    at Object.readdirSync (fs.js:854:3)
    at Object.fs.readdirSync (electron/js2c/asar.js:621:39)
    at NodeJSFileSystem.readdir (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/src/ngtsc/file_system/src/node_js_file_system.js:53:23)
    at EntryPointCollector.walkDirectoryForPackages (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/entry_point_collector.js:63:56)
    at /dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js:62:100
    at Object.trackDuration (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/utils.js:93:22)
    at DirectoryWalkerEntryPointFinder.walkBasePathForPackages (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js:62:39)
    at DirectoryWalkerEntryPointFinder.findEntryPoints (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js:40:30)
    at /dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/execution/analyze_entry_points.js:28:41
    at new ClusterMaster (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:45:30)
[Error - 8:18:26 PM] Failed to run ngcc for /dev/jscutlery/convoyr/apps/sandbox/tsconfig.json:
    ngcc for /dev/jscutlery/convoyr/apps/sandbox/tsconfig.json returned exit code 1, stderr: 
    Language service will remain disabled.
bug

Hilfreichster Kommentar

@yjaaidi Das Problem hier reicht aus - es muss

Keen und ich haben uns gestern dazu gepaart und konnten die Ursache für 4 separate Probleme mithilfe des verknüpften Repositorys ausfindig machen. Wir sollten Fixes zusammengeführt und für die nächste Veröffentlichung im Januar bereit haben. Danke für den Bericht!

Alle 5 Kommentare

Danke für den Link zum Repo, das ist sehr hilfreich.

Sieht so aus, als würde ngcc den Fall nicht verarbeiten, in dem cwd manuell auf das Verzeichnis von tsconfig.json , im Gegensatz zu dem Verzeichnis, in dem node_modules ist.

https://github.com/angular/vscode-ng-language-service/blob/132b2051c44de5504bc77776430c066ecc5fa88a/server/src/ngcc.ts#L36 -L44

Als ich ngcc von convoyr/apps/sandbox aus ausführte, sah ich denselben Fehler wie Sie gepostet haben.
Wenn es aus dem Root-Verzeichnis ausgeführt wird, funktioniert ngcc einwandfrei.

Außerdem sollten wir den Sprachdienst nicht dauerhaft deaktivieren, wenn ngcc fehlschlägt. Ich habe #1041 erstellt, um dies zu verfolgen.

Freue mich zu helfen!

Sollten wir ein Problem auf github.com/angular/angular eröffnen?

@yjaaidi Das Problem hier reicht aus - es muss

Keen und ich haben uns gestern dazu gepaart und konnten die Ursache für 4 separate Probleme mithilfe des verknüpften Repositorys ausfindig machen. Wir sollten Fixes zusammengeführt und für die nächste Veröffentlichung im Januar bereit haben. Danke für den Bericht!

Das war schnell. Gut gemacht!
Lass es mich wissen, wenn ich helfen kann.

Dieses Problem wurde aufgrund von Inaktivität automatisch gesperrt.
Bitte reichen Sie ein neues Problem ein, wenn Sie auf ein ähnliches oder verwandtes Problem stoßen.

Lesen Sie mehr über unsere Richtlinie zum automatischen Sperren von Konversationen .

_Diese Aktion wurde automatisch von einem Bot ausgeführt._

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen