Vscode-ng-language-service: v0.1000.0 não suporta tsconfig de estilo de solução

Criado em 21 jun. 2020  ·  33Comentários  ·  Fonte: angular/vscode-ng-language-service

image

Reproduzir

Passos para reproduzir o comportamento:
git clone https://github.com/keatkeat87/angular-10rc6-language-service-issue.git
instalação de fios
verifique app.component.html

Comportamento esperado
deve ser capaz de F12 ir para a definição do componente.

CLI angular: 10.0.0-rc.5
Nó: 12.18.0
SO: win32 x64

Angular: 10.0.0-rc.6
... animações, comum, compilador, compilador-CLI, núcleo, formulários
... serviço de linguagem, navegador de plataforma, dinâmico de navegador de plataforma
... roteador
Espaço de trabalho Ivy: Sim

Versão do pacote

@ angular-devkit / architect 0.1000.0-rc.5
@ angular-devkit / build-angular 0.1000.0-rc.5
@ angular-devkit / build-optimizer 0.1000.0-rc.5
@ angular-devkit / build-webpack 0.1000.0-rc.5
@ angular-devkit / core 10.0.0-rc.5
@ angular-devkit / schematics 10.0.0-rc.5
@ angular / cdk 10.0.0-rc.2
@ angular / cli 10.0.0-rc.5
@ angular / material 10.0.0-rc.2
@ ngtools / webpack 10.0.0-rc.5
@ esquemático / angular 10.0.0-rc.5
@ schematics / update 0.1000.0-rc.5
rxjs 6.5.5
datilografado 3.9.5
webpack 4.43.0

bug

Comentários muito úteis

Vou corrigir isso no @ angular / language-service v10.0.1, que será lançado em 1º de julho de 2020.

Todos 33 comentários

Você pode fornecer a saída e os registros da extensão?

como fazer isso ?

Claro, consulte a seção “Logs” no modelo de problema :

Anexe dois registros:

Saída do console (vá para a barra de ferramentas -> Exibir -> Saída e copie o conteúdo)
Arquivo de log (o caminho é impresso na saída do console na inicialização)

[Informações - 7:35:19] ID do processo do servidor de linguagem angular: 16852
[Info - 7:35:19 am] Usando typescript v3.8.3 de c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.901.11 \ node_modules \ typescript \ lib \ tsserverlibrary.js
[Info - 7:35:19 am] Usando @ angular / language-service v9.1.11 de c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.901.11 \ server \ node_modules \ @angular \ language -service \ bundles \ language-service.umd.js
[Info - 7:35:19] Arquivo de registro: c: \ Users \ keatk \ AppData \ Roaming \ Code \ logs \ 20200622T073458 \ exthost1 \ Angular.ng-template \ nglangsvc.log
[Info - 7:35:29 am] Desativando o serviço de idioma para c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json porque não é um projeto Angular ('@angular/core/core.d .ts 'não foi encontrado). Se você acredita que está vendo esta mensagem por engano, reinstale os pacotes em seu package.json.
[Erro - 7:35:29 am] Nenhum arquivo de configuração para c: \ keatkeat \ my projects \ angular \ 10.0 \ simple-test \ src \ app \ app.component.ts

Ok, obrigado. Parece que sua versão de extensão não está usando a versão 10 rc. Se desejar usar um aplicativo Angular 10 com a extensão de serviço de idioma VSCode Angular, você precisará carregar a instalação v0.1000.0-rc da extensão. As instruções sobre como fazer isso podem ser encontradas em https://github.com/angular/vscode-ng-language-service/issues/793#issuecomment -636136958.

Deixe-me saber se isso resolve o seu problema.

Acabei de fazer a instalação, mas ainda não está funcionando.

image


Saída de log

Registro:
Info 0 [8: 0: 52.551] Informações do host de formato atualizadas
Info 1 [8: 0: 52.552] recarregar projetos.
Informações 2 [8: 0: 52.552] Antes de garantirProjectForOpenFiles:
Info 3 [8: 0: 52.552] Depois de garantirProjectForOpenFiles:
Info 4 [8: 0: 52.552] Mapeamentos de extensão de arquivo host atualizados
Info 5 [8: 0: 52.567] Caminho de pesquisa: c: / keatkeat / my projects / angular / 10.0 / simple-test / src / app
Info 6 [8: 0: 52.569] Para informações: c: / keatkeat / my projects / angular / 10.0 / simple-test / src / app / app.component.html :: Nome do arquivo de configuração: c: / keatkeat / my projects /angular/10.0/simple-test/tsconfig.json
Info 7 [8: 0: 52.570] Arquivo de configuração c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json aberto
Info 8 [8: 0: 52.587] Config: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json: {
"rootNames": [],
"opções": {
"configFilePath": "c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json"
},
"projectReferences": [
{
"path": "c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json",
"originalPath": "./tsconfig.app.json"
},
{
"path": "c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json",
"originalPath": "./tsconfig.spec.json"
},
{
"path": "c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json",
"originalPath": "./e2e/tsconfig.json"
}
]
}
Info 9 [8: 0: 52.588] Carregando plugin global @ angular / language-service
Info 10 [8: 0: 52.588] Habilitando plugin @ angular / language-service dos caminhos candidatos: c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language-service \ bundles \ language-service.umd.js, c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/node_modules/typescript/lib/tsserverlibrary .js /../../ ..
Info 11 [8: 0: 52.589] Carregando @ angular / language-service de c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language -service \ bundles \ language-service.umd.js (resolvido para c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/server/node_modules/@angular/language- service / bundles / language-service.umd.js / node_modules)
Info 12 [8: 0: 52.724] Validação do plug-in bem-sucedida
Info 13 [8: 0: 52.761] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json
Info 14 [8: 0: 52.830] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json Versão: 1 structureChanged: true Decorrido: 69ms
Info 15 [8: 0: 52.830] Projeto 'c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json' (configurado)
Info 16 [8: 0: 52.830] Arquivos (0)

Info 17 [8: 0: 52.830] ----------------------------------------- ------
Info 18 [8: 0: 52.831] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json
Info 19 [8: 0: 52.832] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json Versão: 2 structureChanged: false Decorrido: 1ms
Info 20 [8: 0: 52.835] Desativando o serviço de idioma para c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.json porque não é um projeto Angular ('@ angular / core / core.d. ts 'não foi encontrado). Se você acredita que está vendo esta mensagem por engano, reinstale os pacotes em seu package.json.
Info 21 [8: 0: 52.835] Arquivo de configuração c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json aberto
Info 22 [8: 0: 52.848] Config: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json: {
"rootNames": [
"c: / keatkeat / my projects / angular / 10.0 / simple-test / src / main.ts",
"c: / keatkeat / my projects / angular / 10.0 / simple-test / src / polyfills.ts"
],
"opções": {
"baseUrl": "c: / keatkeat / meus projetos / angular / 10.0 / teste simples",
"outDir": "c: / keatkeat / my projects / angular / 10.0 / simple-test / out-tsc / app",
"sourceMap": verdadeiro,
"declaração": falso,
"downlevelIteration": verdadeiro,
"experimentalDecorators": verdadeiro,
"moduleResolution": 2,
"importHelpers": verdadeiro,
"target": 2,
"módulo": 6,
"lib": [
"lib.es2018.d.ts",
"lib.dom.d.ts"
],
"tipos": [],
"configFilePath": "c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json"
}
}
Info 23 [8: 0: 52.849] Carregando plugin global @ angular / language-service
Info 24 [8: 0: 52.849] Habilitando plugin @ angular / language-service a partir de caminhos candidatos: c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language-service \ bundles \ language-service.umd.js, c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/node_modules/typescript/lib/tsserverlibrary .js /../../ ..
Info 25 [8: 0: 52.849] Carregando @ angular / language-service de c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language -service \ bundles \ language-service.umd.js (resolvido para c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/server/node_modules/@angular/language- service / bundles / language-service.umd.js / node_modules)
Info 26 [8: 0: 52.862] Validação do plug-in bem-sucedida
Info 27 [8: 0: 52.865] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json
Info 28 [8: 0: 56.426] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json Versão: 1 structureChanged: true Elapsed: 3561ms
Info 29 [8: 0: 56.426] Projeto 'c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json' (configurado)
Info 30 Arquivos [8: 0: 56.426] (307)

Info 31 [8: 0: 56.426] ----------------------------------------- ------
Info 32 [8: 0: 56.427] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json
Info 33 [8: 0: 56.432] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.app.json Versão: 2 structureChanged: false Decorrido: 5ms
Info 34 [8: 0: 56.434] Arquivo de configuração c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json aberto
Info 35 [8: 0: 56.449] Config: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json: {
"rootNames": [
"c: / keatkeat / my projects / angular / 10.0 / simple-test / src / test.ts",
"c: / keatkeat / my projects / angular / 10.0 / simple-test / src / polyfills.ts"
],
"opções": {
"baseUrl": "c: / keatkeat / meus projetos / angular / 10.0 / teste simples",
"outDir": "c: / keatkeat / my projects / angular / 10.0 / simple-test / out-tsc / spec",
"sourceMap": verdadeiro,
"declaração": falso,
"downlevelIteration": verdadeiro,
"experimentalDecorators": verdadeiro,
"moduleResolution": 2,
"importHelpers": verdadeiro,
"target": 2,
"módulo": 6,
"lib": [
"lib.es2018.d.ts",
"lib.dom.d.ts"
],
"tipos": [
"jasmim"
],
"configFilePath": "c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json"
}
}
Info 36 [8: 0: 56.450] Carregando plugin global @ angular / language-service
Info 37 [8: 0: 56.450] Habilitando plugin @ angular / language-service dos caminhos candidatos: c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language-service \ bundles \ language-service.umd.js, c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/node_modules/typescript/lib/tsserverlibrary .js /../../ ..
Info 38 [8: 0: 56.450] Carregando @ angular / language-service de c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language -service \ bundles \ language-service.umd.js (resolvido para c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/server/node_modules/@angular/language- service / bundles / language-service.umd.js / node_modules)
Info 39 [8: 0: 56.464] Validação do plug-in bem-sucedida
Info 40 [8: 0: 56.466] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json
Info 41 [8: 0: 57.389] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json Versão: 1 structureChanged: true Elapsed: 923ms
Info 42 [8: 0: 57.389] Projeto 'c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json' (configurado)
Info 43 [8: 0: 57.389] Arquivos (99)

Info 44 [8: 0: 57.389] ----------------------------------------- ------
Info 45 [8: 0: 57.390] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json
Info 46 [8: 0: 57.391] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / tsconfig.spec.json Versão: 2 structureChanged: false Decorrido: 1ms
Info 47 [8: 0: 57.392] Arquivo de configuração c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json aberto
Info 48 [8: 0: 57.399] Config: c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json: {
"rootNames": [
"c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / src / app.e2e-spec.ts",
"c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / src / app.po.ts"
],
"opções": {
"baseUrl": "c: / keatkeat / meus projetos / angular / 10.0 / teste simples",
"outDir": "c: / keatkeat / my projects / angular / 10.0 / simple-test / out-tsc / e2e",
"sourceMap": verdadeiro,
"declaração": falso,
"downlevelIteration": verdadeiro,
"experimentalDecorators": verdadeiro,
"moduleResolution": 2,
"importHelpers": verdadeiro,
"target": 5,
"Módulo 1,
"lib": [
"lib.es2018.d.ts",
"lib.dom.d.ts"
],
"tipos": [
"jasmim",
"jasminewd2",
"nó"
],
"configFilePath": "c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json"
}
}
Info 49 [8: 0: 57.400] Carregando plugin global @ angular / language-service
Info 50 [8: 0: 57.400] Habilitando plugin @ angular / language-service dos caminhos candidatos: c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language-service \ bundles \ language-service.umd.js, c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/node_modules/typescript/lib/tsserverlibrary .js /../../ ..
Info 51 [8: 0: 57.400] Carregando @ angular / language-service de c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language -service \ bundles \ language-service.umd.js (resolvido para c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/server/node_modules/@angular/language- service / bundles / language-service.umd.js / node_modules)
Info 52 [8: 0: 57.421] Validação do plug-in bem-sucedida
Info 53 [8: 0: 57.424] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json
Info 54 [8: 0: 58.886] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json Versão: 1 structureChanged: true Elapsed: 1462ms
Info 55 [8: 0: 58.886] Projeto 'c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json' (configurado)
Info 56 [8: 0: 58.886] Arquivos (123)

Info 57 [8: 0: 58.886] ----------------------------------------- ------
Info 58 [8: 0: 58.887] Iniciando updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json
Info 59 [8: 0: 58.889] Concluindo updateGraphWorker: Projeto: c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json Versão: 2 structureChanged: false Decorrido: 2ms
Info 60 [8: 0: 58.890] Desativando o serviço de idioma para c: / keatkeat / my projects / angular / 10.0 / simple-test / e2e / tsconfig.json porque não é um projeto Angular ('@ angular / core / core. d.ts 'não foi encontrado). Se você acredita que está vendo esta mensagem por engano, reinstale os pacotes em seu package.json.
Info 61 [8: 0: 58.891] Carregando plugin global @ angular / language-service
Info 62 [8: 0: 58.891] Habilitando plugin @ angular / language-service a partir de caminhos candidatos: c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language-service \ bundles \ language-service.umd.js, c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/node_modules/typescript/lib/tsserverlibrary .js /../../ ..
Info 63 [8: 0: 58.891] Carregando @ angular / language-service de c: \ Users \ keatk.vscode \ extensions \ angular.ng-template-0.1000.0-rc.1 \ server \ node_modules \ @angular \ language -service \ bundles \ language-service.umd.js (resolvido para c: /Users/keatk/.vscode/extensions/angular.ng-template-0.1000.0-rc.1/server/node_modules/@angular/language- service / bundles / language-service.umd.js / node_modules)
Info 64 [8: 0: 58.904] Validação do plug-in bem-sucedida
Info 65 [8: 0: 58.910] Iniciando updateGraphWorker: Projeto: / dev / null / inferredProject1 *
Info 66 [8: 0: 59.911] Concluindo updateGraphWorker: Projeto: / dev / null / inferredProject1 * Versão: 1 structureChanged: true Decorrido: 1001ms
Info 67 [8: 0: 59.911] Projeto '/ dev / null / inferredProject1 *' (inferido)
Info 68 Arquivos [8: 0: 59.911] (100)

Info 69 [8: 0: 59.911] ----------------------------------------- ------

Você pode confirmar que o preenchimento automático / ir para referência não está funcionando?

sim, você pode clonar meu repositório, eu tenho a atualização para o mais recente
issue1

Interessante, acho que os arquivos das referências do projeto não são passados ​​corretamente para o tsconfig do estilo de solução, que assume a propriedade do projeto. Consertar isso requer mais investigação. Enquanto isso, uma solução alternativa é comentar files: [] no tsconfig.json .

cc @kyliau

Estou surpreso por não ter sido relatado antes

depois de tentar solucionar o problema, comente os arquivos: []
outro erro aparecer.
image
e
image

@kyliau , o método getDefaultProjectForScriptInfo anexa um arquivo externo ao projeto errado ao usar o tsconfig de estilo de solução. Ele anexa app.component.html arquivo a tsconfig.json vez de tsconfig.app.json projeto

Funciona conforme o esperado quando o plug-in de serviço de idioma tem implementação GetExternalFiles () .

@andrius-pra obrigado pela investigação. Sim, posso confirmar sua descoberta.

O problema aqui é que, dado um arquivo de modelo Angular (.html), o serviço de linguagem depende do ancestral mais próximo tsconfig.json para determinar a qual projeto ele pertence.
Ele funciona bem antes da introdução do tsconfig no estilo de solução e geralmente tem mais desempenho porque reduz a sobrecarga no serviço de linguagem sem consultar getExternalFiles() em cada ts.Program atualização.
Com o tsconfig no estilo de solução, a raiz tsconfig.json por si só não inclui nenhum arquivo e atua mais como um "shell" de subprojetos. Nesse caso, não há praticamente nenhuma maneira da extensão Angular determinar a qual subprojeto o modelo Angular pertence, a menos que o próprio subprojeto declare o modelo como um arquivo externo.
Parece-me que nossa melhor aposta aqui é restabelecer getExternalFiles() .

Separadamente, a equipe CLI recebeu relatórios de lentidão no desempenho do IDE quando o tsconfig do estilo de solução é usado.
O problema é rastreado em https://github.com/microsoft/TypeScript/issues/39144
@ alan-agius4 propôs adicionar tsconfig.json a cada aplicativo. Isso também resolveria o problema, com a única exceção no caso em que o próprio espaço de trabalho é o aplicativo (root tsconfig.json é reservado para tsconfig no estilo de solução).

@ alan-agius4 propôs adicionar tsconfig.json a cada aplicativo

isso seria algo que a CLI faz?

@kyliau o nível de projeto tsconfig.json ainda seria um arquivo de configuração de texto digitado de estilo de solução. Portanto, não resolverá o problema.

@ andrius-pra, de fato, isso não pode ser corrigido removendo files: [] pois isso muda a semática do arquivo tsconfig raiz de um arquivo tsconfig de soluções para um arquivo tsconfig de projeto composto.

@ayazhafiz , sim, a CLI atualizaria o espaço de trabalho e criaria os novos arquivos tsconfig.

Vou corrigir isso no @ angular / language-service v10.0.1, que será lançado em 1º de julho de 2020.

https://github.com/angular/angular/pull/37750 foi criado para restabelecer getExternalFiles() .

Para usuários interessados ​​em saber por que essa correção não foi fornecida na v0.1000.0, é porque já entramos no período de "congelamento de código" em nosso estágio de lançamento RC quando este problema foi registrado. Peço desculpas a todos que experimentaram o Angular v10 e ficaram frustrados porque o serviço de idiomas não funcionou imediatamente (para novos projetos). Desculpe pela inconveniência.

No futuro, vamos implementar uma integração mais estreita entre o serviço de linguagem e a CLI, para que possamos detectar problemas como esse muito mais cedo.

Reabrindo até que a correção seja lançada na próxima semana.

Isso foi corrigido na v0.1000.1, que acabou de ser lançada.
https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1000.1
Vou encerrar este problema por enquanto, abra um novo problema se você tiver problemas com tsconfig do tipo solução.

@kyliau veja meu comentário aqui https://github.com/angular/angular/issues/37781#issuecomment -650508843. Isso ainda não está funcionando.

@JohnnyDevNull , você poderia fornecer a saída do Console (vá para a barra de ferramentas -> Exibir -> Saída e copie o conteúdo)?
Funciona em um novo projeto?

npm install -g @angular/cli
ng new ng10
code ng10

@ andrius-pra veja meu problema no link acima. Fiz o mesmo processo descrito lá, fresco e limpo. Também com cli angular instalado.

Edit: a propósito, também fiz uma desinstalação e reinstalação do angular-cli globalmente

@JohnnyDevNull Você poderia mostrar a saída do console? Deve ser semelhante a este

Screen Shot 2020-06-27 at 7 44 03 AM

@kyliau aqui está:

image

Edit: Esta foi uma instalação totalmente nova, também depois de reinstalar o cli globalmente
Edição 2: A propósito, estou usando CodeOSS porque estou em um Manjaro KDE, se isso importa

@JohnnyDevNull Parece que o Angular LS está ativado em tsconfig.app.json , mas você está esperando o preenchimento automático para componentes / diretivas da biblioteca , que provavelmente estão em outro projeto (configurado por outro tsconfig.*.json )?

@kyliau o que eu fiz foi

tldr; Eu acho que você deveria reapresentar o problema https://github.com/angular/angular/issues/37781 porque ainda não funciona

ng new ng-test --create-application=false --skipGit
ng g library my-test --prefix=mt
ng g library my-test2 --prefix=mt2
ng g application my-tester --routing=true --style=scss
ng build --project=my-test
ng build --project=my-test2

quando agora você importa o MyTestModule para o AppModule no aplicativo my-tester, nenhuma correspondência de caminho está funcionando.
E também a herança tsconfig.base.json não está funcionando por causa do erro dos decoradores.

Todos os arquivos são gerados automaticamente a partir do CLI e não modificados por mim!

Os erros são os mesmos com a versão atualizada, conforme mencionado em meu problema:

image

Eu fiz a configuração limpa do Angular-Cli para ter certeza de que nenhuma das minhas configurações no meu projeto de biblioteca quebra alguma coisa.
Mas isso, como mencionei, não funciona direto da caixa com o modelo angular gerado automaticamente a partir do cli e o andaime esquemático.

A propósito, é correto que o Angular LS carregue o tsconfig.app.json. Isso é herdado do tsconfig.base.json e aí as correspondências de caminho são configuradas.

tsconfig.app.json

/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "outDir": "../../out-tsc/app",
    "types": []
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.d.ts"
  ]
}

tsconfig.base.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "module": "es2020",
    "lib": [
      "es2018",
      "dom"
    ],
    "paths": {
      "my-test": [
        "dist/my-test/my-test",
        "dist/my-test"
      ]
    }
  }
}

tsconfig.json (solução tsconfig)

/*
  This is a "Solution Style" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience.
  It is not intended to be used to perform a compilation.

  To learn more about this file see: https://angular.io/config/solution-tsconfig.
*/
{
  "files": [],
  "references": [
    {
      "path": "./projects/my-test/tsconfig.lib.json"
    },
    {
      "path": "./projects/my-test/tsconfig.spec.json"
    },
    {
      "path": "./projects/my-tester/tsconfig.app.json"
    },
    {
      "path": "./projects/my-tester/tsconfig.spec.json"
    },
    {
      "path": "./projects/my-tester/e2e/tsconfig.json"
    }
]
}

@JohnnyDevNull , Você removeu "files": [], de tsconfig.json no diretório raiz?

Eu não recebo nenhum erro. Eu fiz estas etapas:

Crie um espaço de trabalho:

ng new ng-test --create-application=false --skipInstall --skipGit
cd ng-test
ng g library my-test --prefix=mt
ng g library my-test2 --prefix=mt2
ng g application --name my-tester --routing=false --style=css
ng build --project=my-test
ng build --project=my-test2
code . projects\my-tester\src\app\app.module.ts

adicione importações a app.module.ts:

import { MyTestModule } from 'my-test'
import { MyTest2Module } from 'my-test2'

saída do console:

[Info  - 19:08:58] Angular language server process ID: 24660
[Info  - 19:08:58] Using typescript v3.9.5 from c:\Users\Andrius\.vscode\extensions\angular.ng-template-0.1000.1\node_modules\typescript\lib\tsserverlibrary.js
[Info  - 19:08:58] Using @angular/language-service v10.0.1 from c:\Users\Andrius\.vscode\extensions\angular.ng-template-0.1000.1\server\node_modules\@angular\language-service\bundles\language-service.umd.js
[Info  - 19:08:58] Log file: c:\Users\Andrius\AppData\Roaming\Code\logs\20200627T190857\exthost3\Angular.ng-template\nglangsvc.log
[Info  - 19:09:02] Disabling language service for d:/a/ng-test/tsconfig.json because it is not an Angular project ('@angular/core/core.d.ts' could not be found). If you believe you are seeing this message in error, please reinstall the packages in your package.json.
[Info  - 19:09:02] Enabling language service for d:/a/ng-test/projects/my-test/tsconfig.lib.json.
[Info  - 19:09:02] Enabling language service for d:/a/ng-test/projects/my-test/tsconfig.spec.json.
[Info  - 19:09:02] Enabling language service for d:/a/ng-test/projects/my-test2/tsconfig.lib.json.
[Info  - 19:09:02] Enabling language service for d:/a/ng-test/projects/my-test2/tsconfig.spec.json.
[Info  - 19:09:02] Enabling language service for d:/a/ng-test/projects/my-tester/tsconfig.app.json.

@ andrius-pra

https://github.com/angular/vscode-ng-language-service/issues/824#issuecomment -650579235

Todos os arquivos são gerados automaticamente a partir do CLI e não modificados por mim!

Nota : por favor, não remova "files": [] isso muda a semática e o significado do tsconfig root. Ao remover o array vazio, você está optando por sair do estilo tsconfig de soluções.

Remover isso causará um comportamento indefinido e de forma alguma é suportado.

Acho que o que você está experimentando parece semelhante a https://github.com/angular/angular-cli/issues/16708

Este mesmo problema persiste ao reiniciar o LS?

Acho que encontrei o problema do VSCode:

VSCode (ou, no meu caso, Code OSS) usa por padrão a versão TypeScript 3.8.3 enviada, que não oferece suporte à configuração da solução com herança.

Coloquei isso em settings.json, para que a versão do espaço de trabalho seja usada

{
  "typescript.tsdk": "node_modules/typescript/lib"
}

Minha saída ainda é a mesma, mas os erros sumiram:

image

@JohnnyDevNull , na verdade você precisa ter certeza de forçar o VSCode a usar o pacote TypeScript de nível de projeto.

@ alan-agius4 tem certeza de que corrigiu o problema? Estou na versão mais recente de tudo que poderia ter atualizado. Dependências e plugins vscode + e o problema persistem, mesmo com a versão 10.0.1, quando os arquivos mencionados: [] está na raiz tsconfig.json, o VScode não preenche nada automaticamente.

EDIT: está funcionando, é só que eu tinha mais de um tsconfig (tsconfig.app.json e tsconfig.demo.json) e tinha vários cenários de exclusão, agora VScode se recusa a importar módulos nos arquivos excluídos, o que eu acho que está errado.

Exemplo, eu excluo todos os arquivos no tsconfig.app.json no caminho src/app/demo/** mas ele não é excluído no tsconfig.demo.json (porque tenho mais destinos de compilação) e o VScode nunca me oferecerá ajuda no src/app/demo/** , estou pensando em como resolver isso.

Outra coisa, o importante é incluir: [] em tsconfig.app.json, o angular 10 agora assume o valor * .d.ts em comparação com * .ts antes de fazer com que o VScode não atravesse muitos arquivos se * .d.ts é deixado lá ou inclui o array completamente omitido. Em qualquer um dos cenários, a compilação sempre é bem-sucedida, mas os plug-ins do VScode apresentam problemas.

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