Vscode-ng-language-service: crash de ngcc avec une configuration monorepo / multi-projet - Ivy Native LS

Créé le 18 déc. 2020  ·  5Commentaires  ·  Source: angular/vscode-ng-language-service

Décrivez le bogue

L'extension VSCode se bloque sur les référentiels avec plusieurs tsconfigs.

Il semble essayer de ngcc le dossier node_modules côté de chaque tsconfig.

Reproduire

  1. Activez l'extension sur un dépôt comme celui-ci https://github.com/jscutlery/convoyr
  2. Ouvrez le app.component.ts

Comportement prévisible

Il ne devrait pas planter.

Journaux

[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

Commentaire le plus utile

@yjaaidi Le problème ici est suffisant - pas besoin d'en ouvrir un sur angulaire/angulaire ! Nous n'avons pas encore décidé comment/si nous voulons consolider les rapports de services linguistiques entre les deux dépôts, donc pour l'instant, nous gardons un œil sur les deux.

Keen et moi nous sommes associés à cela hier et avons pu rechercher la cause première de 4 problèmes distincts à l'aide du référentiel lié. Nous devrions avoir fusionné les correctifs et prêts pour la prochaine version en janvier. Merci pour le rapport !

Tous les 5 commentaires

Merci pour le lien vers le dépôt, c'est très utile.

On dirait que ngcc ne gère pas le cas où cwd est défini manuellement sur le répertoire de tsconfig.json , par opposition au répertoire où se trouve node_modules .

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

Lorsque j'exécute ngcc à partir de convoyr/apps/sandbox , j'ai vu le même échec que celui que vous avez posté.
Lorsqu'il est exécuté à partir du répertoire racine, ngcc fonctionne correctement.

De plus, nous ne devons pas désactiver définitivement le service de langue si ngcc échoue. J'ai créé #1041 pour suivre cela.

Heureux d'aider!

Doit-on ouvrir un ticket sur github.com/angular/angular ?

@yjaaidi Le problème ici est suffisant - pas besoin d'en ouvrir un sur angulaire/angulaire ! Nous n'avons pas encore décidé comment/si nous voulons consolider les rapports de services linguistiques entre les deux dépôts, donc pour l'instant, nous gardons un œil sur les deux.

Keen et moi nous sommes associés à cela hier et avons pu rechercher la cause première de 4 problèmes distincts à l'aide du référentiel lié. Nous devrions avoir fusionné les correctifs et prêts pour la prochaine version en janvier. Merci pour le rapport !

C'était rapide. Bon travail!
Faites-moi savoir si je peux aider.

Ce problème a été automatiquement verrouillé en raison de l'inactivité.
Veuillez déposer un nouveau problème si vous rencontrez un problème similaire ou connexe.

En savoir plus sur notre politique de verrouillage automatique des conversations .

_Cette action a été effectuée automatiquement par un bot._

Cette page vous a été utile?
0 / 5 - 0 notes