最近、言語サービスが機能しなくなり、コンソールに次のように表示されるようになりました。
致命的なエラー: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
上記の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)ファイルからエラーがスローされています。
助けてください
この問題は、非アクティブのために自動的にロックされています。
同様の問題または関連する問題が発生した場合は、新しい問題を提出してください。
自動会話ロックポリシーの詳細をご覧ください。
_このアクションはボットによって自動的に実行されました。_
最も参考になるコメント
@mafredri 2番目のコメントのエラーは、2.1以降のTypeScriptの更新に起因する可能性があります。
editorServices.ts
は、2.1を超えてアップグレードするには大幅な変更が必要です。そのため、このプラグインは現在2.1.5を使用しています。最初のコメントは私にはわかりません。
ある場合は、プロジェクトから
@angular/language-service
へのdev依存関係を削除して、言語サービスの組み込みバージョンの使用に戻ることを検討してください。 お持ちでない場合は、最新の@angular/language-service
追加することを検討してください。