Vscode-ng-language-service: 言語サービスがクラッシュする(Angular 4.1.2の場合):JavaScriptヒープがメモリ不足

作成日 2017年05月14日  ·  5コメント  ·  ソース: angular/vscode-ng-language-service

最近、言語サービスが機能しなくなり、コンソールに次のように表示されるようになりました。


致命的なエラー:CALL_AND_RETRY_LASTの割り当てに失敗しました-JavaScriptヒープのメモリが不足しています

 Angular Language Service:4.1.2
 TypeScript:2.1.6
致命的なエラー:CALL_AND_RETRY_LASTの割り当てに失敗しました-JavaScriptヒープのメモリが不足しています
 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
 [情報-10:12:40PM]サーバーへの接続が閉じられました。 サーバーが再起動します。


これは、Angular 4.1.1または4.1.2にアップグレードした後のことであり、おそらく他の要因も役割を果たしました。

依存関係をアップグレードすることで、問題は簡単に解決されます。

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

Angular.ng-template-0.1.3 depsもアップグレードしましたが、それだけでは問題は修正されず、変更を元に戻すこともできませんでした。

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

最も参考になるコメント

@mafredri 2番目のコメントのエラーは、2.1以降のTypeScriptの更新に起因する可能性があります。 editorServices.tsは、2.1を超えてアップグレードするには大幅な変更が必要です。そのため、このプラグインは現在2.1.5を使用しています。

最初のコメントは私にはわかりません。

ある場合は、プロジェクトから@angular/language-serviceへのdev依存関係を削除して、言語サービスの組み込みバージョンの使用に戻ることを検討してください。 お持ちでない場合は、最新の@angular/language-service追加することを検討してください。

全てのコメント5件

上記のdepsのアップグレードを行った後、拡張機能の出力にいくつかのエラーがあることに気付きました。役立つ場合に備えて、ここに追加します。


エラー:長さ<0

 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600
 新しいエラーをスローします( "長さ<0");
 ^

エラー:長さ<0
 Object.createTextSpanで(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:10600:19)
 TextChange.getTextChangeRange(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2024:44)
 ScriptVersionCache.getTextChangesBetweenVersions(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2112:80)
 LineIndexSnapshot.getTextChangeRangeSinceVersion(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2177:31)
 LineIndexSnapshot.getChangeRange(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2182:21)
 AcquisitionOrUpdateDocument(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74378:133)
 Object.updateDocumentWithKey(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:74357:20)
 Object.getOrCreateSourceFileByPath [as getSourceFileByPath](/ Users / mafredri / .vscode / extensions / Angular.ng-template-0.1.3 / server / node_modules / typescript / lib / typescript.js:86043:49)
 tryReuseStructureFromOldProgram(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:67052:28)
 Object.createProgramで(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/node_modules/typescript/lib/typescript.js:66824:14)
 [情報-11:19:08AM]サーバーへの接続が閉じられました。 サーバーが再起動します。


TypeError:未定義のプロパティ「種類」を読み取ることができません

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

 TypeError:未定義のプロパティ「種類」を読み取ることができません
 Evaluator.evaluateNode(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43244:21)
 Evaluator.evaluateNode(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43383:34)
 /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43263:39
 visitEachNodeで(/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14724:30)
 Object.forEachChild(/Users/mafredri/ng2-project/node_modules/typescript/lib/typescript.js:14840:24)
 Evaluator.evaluateNode(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43248:22)
 /Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:103
 Array.map(ネイティブ)で
 Evaluator.evaluateNode(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43317:69)
 objFromDecorator(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:43753:33)
 [情報-11:15:20AM]サーバーへの接続が閉じられました。 サーバーが再起動します。


TypeError:nullのプロパティ「メタデータ」を読み取れません

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

 TypeError:nullのプロパティ「メタデータ」を読み取れません
 TypeScriptServiceHost.ensureTemplateMap(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48425:113)
 TypeScriptServiceHost.getTemplateReferences(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48265:14)
 LanguageServiceImpl.getTemplateReferences(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47956:90)
 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:78にあります
 時点(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22)
 Object.getTemplateReferences(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2689:20)で
 Project.updateFileMap(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:788:62)
 Project.updateGraph(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:806:14)
 Project.finishGraph(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:798:14)
 ProjectService.updateConfiguredProject(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1708:25)
 [情報-11:14:33AM]サーバーへの接続が閉じられました。 サーバーが再起動します。


サーバーエラー:未定義のプロパティ 'charCount'を読み取ることができません

サーバーエラー:未定義のプロパティ 'charCount'を読み取ることができません
 TypeError:未定義のプロパティ 'charCount'を読み取れません
 LineNode.walk(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2439:39)
 LineIndex.edit(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27)
 ScriptVersionCache.getSnapshot(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39)
 ScriptInfo.snapで(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:405:25)
 LSHost.lineOffsetToPosition(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:649:28)
 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:86
 Array.map(ネイティブ)で
 ProjectService.lineOffsetsToPositions(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:1439:30)
 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:151:56にあります
 TextDocuments.logErrors(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/documents.js:234:13)
 [エラー-11:19:44AM]通知ハンドラー 'textDocument / didChange'がメッセージで失敗しました:未定義のプロパティ 'charCount'を読み取れません


通知ハンドラ 'textDocument / didChange'が次のメッセージで失敗しました:未定義のプロパティ 'charCount'を読み取れません

 [エラー-11:42:51AM]通知ハンドラー 'textDocument / didChange'がメッセージで失敗しました:未定義のプロパティ 'charCount'を読み取れません
 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431
 childCharCount = child.charCount();
 ^

 TypeError:未定義のプロパティ 'charCount'を読み取れません
 LineNode.walk(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431:35)
 LineIndex.edit(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2304:27)
 ScriptVersionCache.getSnapshot(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2086:39)
 ScriptVersionCache.latestVersion(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2050:18)
 LSHost.getScriptVersion(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:542:29)
 TypeScriptServiceHost.getTemplates(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:48312:39)
 LanguageServiceImpl.getDiagnostics(/Users/mafredri/ng2-project/node_modules/@angular/language-service/bundles/language-service.umd.js:47959:35)
 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:72にあります
 時点(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2677:22)
 Object.getDiagnostics(/Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2686:20)
 [情報-11:42:51AM]サーバーへの接続が閉じられました。 サーバーが再起動します。

@mafredri 2番目のコメントのエラーは、2.1以降のTypeScriptの更新に起因する可能性があります。 editorServices.tsは、2.1を超えてアップグレードするには大幅な変更が必要です。そのため、このプラグインは現在2.1.5を使用しています。

最初のコメントは私にはわかりません。

ある場合は、プロジェクトから@angular/language-serviceへのdev依存関係を削除して、言語サービスの組み込みバージョンの使用に戻ることを検討してください。 お持ちでない場合は、最新の@angular/language-service追加することを検討してください。

editorServices.tsでは、2.1を超えてアップグレードするには大幅な変更が必要です。そのため、このプラグインは現在2.1.5を使用しています。

@chuckjazこれが

ある場合は、プロジェクトから@ angular / language-serviceへのdev依存関係を削除して、言語サービスの組み込みバージョンの使用に戻ることを検討してください。

私はそれを開発依存関係として持っていますが、私のPRブランチは正常に機能しているので、古いバージョンの言語サービスに戻らないことを望みます。

どのように私は、特定のフォルダ内のルック「しない」このプラグインを設定します。 現在、プロジェクトで参照しているすべてのベンダー(htmlおよびcss)ファイルからエラーがスローされています。
助けてください

この問題は、非アクティブのために自動的にロックされています。
同様の問題または関連する問題が発生した場合は、新しい問題を提出してください。

自動会話ロックポリシーの詳細をご覧ください。

_このアクションはボットによって自動的に実行されました。_

このページは役に立ちましたか?
0 / 5 - 0 評価