Vscode-ng-language-service: Falha no serviço de linguagem (no Angular 4.1.2): heap do JavaScript sem memória

Criado em 14 mai. 2017  ·  5Comentários  ·  Fonte: angular/vscode-ng-language-service

Recentemente, notei que o serviço de idioma parou de funcionar e comecei a ver o seguinte no console:


ERRO FATAL: CALL_AND_RETRY_LAST Falha na alocação - heap do JavaScript sem memória

 Serviço Angular Language: 4.1.2
 TypeScript: 2.1.6
 ERRO FATAL: CALL_AND_RETRY_LAST Falha na alocação - heap do JavaScript sem memória
 1: node :: Abort () [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 2: node :: DLOpen (v8 :: FunctionCallbackInfo <: value i = "9"> const &) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib ]
 3: v8 :: internal :: FatalProcessOutOfMemory (char const *) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 4: v8 :: internal :: FatalProcessOutOfMemory (char const *) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 5: v8 :: internal :: Factory :: NewFixedArray (int, v8 :: internal :: PretenureFlag) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode. dylib]
 6: v8 :: internal :: JSArrayBuffer :: Setup (v8 :: internal :: Handle <: internal :: jsarraybuffer i = "10">, v8 :: internal :: Isolate *, bool, void *, unsigned long, v8 :: internal :: SharedFlag) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 7: v8 :: internal :: JSRegExp :: New (v8 :: internal :: Handle <: internal :: string i = "11">, v8 :: base :: Flags <: internal :: jsregexp :: flag i = "12">) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 8: v8 :: internal :: EhFrameIterator :: DecodeSLeb128 (unsigned char const *, int *) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 9: v8 :: internal :: HeapNumber :: HeapNumberPrint (std :: __ 1 :: basic_ostream> &) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 10: v8 :: internal :: RegisterConfiguration :: AreAliases (v8 :: internal :: MachineRepresentation, int, v8 :: internal :: MachineRepresentation, int) const [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework .framework / Versions / A / Libraries / libnode.dylib]
 11: 0x2c0596f843a7
 12: 0x2c05971a4765
 13: 0x2c0597196a67
 [Info - 10:12:40 PM] A conexão com o servidor foi encerrada. O servidor irá reiniciar.


Isso foi depois de atualizar para 4.1.1 ou 4.1.2 Angular, talvez outros fatores também tenham desempenhado um papel importante.

O problema é facilmente resolvido com o upgrade das dependências:

cd ~/.vscode/extensions/Angular.ng-template-0.1.3
yarn upgrade @angular/language-service typescript vscode-languageserver

Eu também atualizei os deps em Angular.ng-template-0.1.3 mas isso por si só não corrigiu o problema, também não reverti a mudança:

cd ~/.vscode/extensions/Angular.ng-template-0.1.3/server
yarn upgrade vscode-languageclient vscode typescript
bug

Comentários muito úteis

@mafredri Os erros no segundo comentário podem ser atribuídos à atualização do TypeScript após 2.1. O editorServices.ts requer mudanças significativas para atualizar além do 2.1, razão pela qual este plugin está usando o 2.1.5.

O primeiro comentário, não faço ideia.

Se você tiver um, considere remover a dependência dev em @angular/language-service do seu projeto para que ele volte a usar a versão incorporada do serviço de linguagem. Se você não tiver um, considere adicionar um ao mais recente @angular/language-service .

Todos 5 comentários

Depois de fazer a atualização de deps acima, notei alguns erros na saída da extensão, adicionando-os aqui caso possam ser úteis:


Erro: comprimento <0

 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600
 lançar um novo erro ("comprimento <0");
 ^

 Erro: comprimento <0
 em Object.createTextSpan (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600:19)
 em TextChange.getTextChangeRange (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2024:44)
 em ScriptVersionCache.getTextChangesBetweenVersions (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2112:80)
 em LineIndexSnapshot.getTextChangeRangeSinceVersion (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2177:31)
 em LineIndexSnapshot.getChangeRange (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2182:21)
 em buyerOrUpdateDocument (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74378:133)
 em Object.updateDocumentWithKey (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74357:20)
 em Object.getOrCreateSourceFileByPath [as getSourceFileByPath] (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:86043:49)
 em tryReuseStructureFromOldProgram (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:67052:28)
 em Object.createProgram (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:66824:14)
 [Informações - 11h19h08] A conexão com o servidor foi encerrada. O servidor irá reiniciar.


TypeError: Não é possível ler a propriedade 'tipo' de indefinido

 /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43244
 switch (node.kind) {
 ^

 TypeError: Não é possível ler a propriedade 'tipo' de indefinido
 em Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43244:21)
 em Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43383:34)
 em /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43263:39
 em visitEachNode (/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14724:30)
 em Object.forEachChild (/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14840:24)
 em Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43248:22)
 em /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:103
 em Array.map (nativo)
 em Evaluator.evaluateNode (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:69)
 em objFromDecorator (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43753:33)
 [Informações - 11h15m20] A conexão com o servidor foi encerrada. O servidor irá reiniciar.


TypeError: Não é possível ler 'metadados' de propriedade de nulo

 /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48425
 var _d = this.resolver.getNonNormalizedDirectiveMetadata (diretiva.reference), metadados = _d.metadata, annotation = _d.annotation;
 ^

 TypeError: Não é possível ler 'metadados' de propriedade de nulo
 em TypeScriptServiceHost.ensureTemplateMap (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48425:113)
 em TypeScriptServiceHost.getTemplateReferences (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48265:14)
 em LanguageServiceImpl.getTemplateReferences (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47956:90)
 em /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:78
 no momento (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22)
 em Object.getTemplateReferences (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:20)
 em Project.updateFileMap (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:788:62)
 em Project.updateGraph (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:806:14)
 em Project.finishGraph (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:798:14)
 em ProjectService.updateConfiguredProject (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1708:25)
 [Info - 11:14:33] A conexão com o servidor foi encerrada. O servidor irá reiniciar.


ERRO DO SERVIDOR: Não é possível ler a propriedade 'charCount' de indefinido

 ERRO DO SERVIDOR: Não é possível ler a propriedade 'charCount' de indefinido
 TypeError: Não é possível ler a propriedade 'charCount' de indefinido
 em LineNode.walk (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2439:39)
 em LineIndex.edit (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27)
 em ScriptVersionCache.getSnapshot (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39)
 em ScriptInfo.snap (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:405:25)
 em LSHost.lineOffsetToPosition (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:649:28)
 em /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:86
 em Array.map (nativo)
 em ProjectService.lineOffsetsToPositions (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:30)
 em /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:151:56
 em TextDocuments.logErrors (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:234:13)
 [Erro - 11:19:44] Manipulador de notificação 'textDocument / didChange' falhou com a mensagem: Não é possível ler a propriedade 'charCount' de indefinido


O manipulador de notificação 'textDocument / didChange' falhou com a mensagem: Não é possível ler a propriedade 'charCount' de indefinido

 [Erro - 11:42:51] O manipulador de notificação 'textDocument / didChange' falhou com a mensagem: Não é possível ler a propriedade 'charCount' de indefinido
 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431
 childCharCount = child.charCount ();
 ^

 TypeError: Não é possível ler a propriedade 'charCount' de indefinido
 em LineNode.walk (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431:35)
 em LineIndex.edit (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27)
 em ScriptVersionCache.getSnapshot (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39)
 em ScriptVersionCache.latestVersion (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2050:18)
 em LSHost.getScriptVersion (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:542:29)
 em TypeScriptServiceHost.getTemplates (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48312:39)
 em LanguageServiceImpl.getDiagnostics (/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47959:35)
 em /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:72
 no momento (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22)
 em Object.getDiagnostics (/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:20)
 [Info - 11:42:51] A conexão com o servidor foi encerrada. O servidor irá reiniciar.

@mafredri Os erros no segundo comentário podem ser atribuídos à atualização do TypeScript após 2.1. O editorServices.ts requer mudanças significativas para atualizar além do 2.1, razão pela qual este plugin está usando o 2.1.5.

O primeiro comentário, não faço ideia.

Se você tiver um, considere remover a dependência dev em @angular/language-service do seu projeto para que ele volte a usar a versão incorporada do serviço de linguagem. Se você não tiver um, considere adicionar um ao mais recente @angular/language-service .

O editorServices.ts requer mudanças significativas para atualizar além do 2.1, razão pela qual este plugin está usando o 2.1.5.

@chuckjaz Não

Se você tiver um, considere remover a dependência dev em @ angular / language-service de seu projeto para que ele volte a usar a versão incorporada do serviço de linguagem.

Eu o tenho como uma dependência dev, no entanto, meu branch PR está funcionando bem, então prefiro não reverter para uma versão mais antiga do serviço de linguagem.

Como configuro este plugin " Não para " para olhar em pastas específicas. Atualmente, ele está gerando erros de todos os arquivos do fornecedor (html e css) aos quais estou apenas me referindo em meu projeto.
Por favor ajude

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