Vscode-ng-language-service: Falha do ngcc com configuração monorepo / multiprojeto - Ivy Native LS

Criado em 18 dez. 2020  ·  5Comentários  ·  Fonte: angular/vscode-ng-language-service

Descreva o bug

A extensão VSCode falha em repositórios com vários tsconfigs.

Parece tentar ngcc a pasta node_modules ao lado de cada tsconfig.

Reproduzir

  1. Habilite a extensão em um repo como este https://github.com/jscutlery/convoyr
  2. Abra o app.component.ts

Comportamento esperado

Não deve travar.

Histórico

[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

Comentários muito úteis

@yjaaidi O problema aqui é suficiente - não há necessidade de abrir um em angular / angular! Ainda não decidimos como / se queremos consolidar os relatórios de serviços linguísticos entre os dois repositórios, então, por enquanto, estamos apenas de olho em ambos.

Keen e eu nos juntamos nisso ontem e fomos capazes de rastrear a causa raiz de 4 problemas separados usando o repositório vinculado. Devemos ter as correções mescladas e prontas para o próximo lançamento em janeiro. Obrigado pelo relatório!

Todos 5 comentários

Obrigado pelo link para o repo, é muito útil.

Parece que o ngcc não lida com o caso em que cwd é configurado manualmente para o diretório de tsconfig.json , ao contrário do diretório onde node_modules está.

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

Quando executo o ngcc de convoyr/apps/sandbox , vi a mesma falha que você postou.
Quando executado a partir do diretório raiz, o ngcc funciona bem.

Além disso, não devemos desativar o serviço de idioma permanentemente se o ngcc falhar. Criei # 1041 para rastrear isso.

Feliz por ajudar!

Devemos abrir um problema em github.com/angular/angular?

@yjaaidi O problema aqui é suficiente - não há necessidade de abrir um em angular / angular! Ainda não decidimos como / se queremos consolidar os relatórios de serviços linguísticos entre os dois repositórios, então, por enquanto, estamos apenas de olho em ambos.

Keen e eu nos juntamos nisso ontem e fomos capazes de rastrear a causa raiz de 4 problemas separados usando o repositório vinculado. Devemos ter as correções mescladas e prontas para o próximo lançamento em janeiro. Obrigado pelo relatório!

Aquilo foi rápido. Bom trabalho!
Me diga se posso ajudar.

Este problema foi bloqueado automaticamente devido à inatividade.
Registre um novo problema se você estiver encontrando um problema semelhante ou relacionado.

Leia mais sobre nossa política de bloqueio automático de conversas .

_Esta ação foi executada automaticamente por um bot._

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

MoazAlkharfan picture MoazAlkharfan  ·  3Comentários

sheikalthaf picture sheikalthaf  ·  5Comentários

MarcOne68 picture MarcOne68  ·  5Comentários

daveriedstra picture daveriedstra  ·  3Comentários

seangwright picture seangwright  ·  4Comentários