Vscode-ng-language-service: Сбой языковой службы (в Angular 4.1.2): нехватка памяти в куче JavaScript

Созданный на 14 мая 2017  ·  5Комментарии  ·  Источник: angular/vscode-ng-language-service

Недавно я заметил, что языковая служба перестала работать и в консоли начала видеть следующее:


FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

 Угловая языковая служба: 4.1.2
 TypeScript: 2.1.6
 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 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 / Библиотеки / libnode.dylib]
 11: 0x2c0596f843a7
 12: 0x2c05971a4765
 13: 0x2c0597196a67
 [Информация - 10:12:40 PM] Прервано соединение с сервером. Сервер перезапустится.


Это было после обновления до Angular 4.1.1 или 4.1.2 , возможно, сыграли роль и другие факторы.

Проблема легко решается обновлением зависимостей:

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

Я также обновил deps в Angular.ng-template-0.1.3 но это само по себе не устранило проблему, я также не отменил изменение:

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

Самый полезный комментарий

@mafredri Ошибки во втором комментарии можно отнести к обновлению TypeScript версии 2.1. editorServices.ts требует значительных изменений для обновления версии 2.1.5, поэтому этот плагин в настоящее время использует 2.1.5.

Первый комментарий, о котором я понятия не имею.

Если он у вас есть, рассмотрите возможность удаления зависимости разработчика от @angular/language-service из вашего проекта, чтобы он вернулся к использованию встроенной версии языковой службы. Если у вас его нет, подумайте о том, чтобы добавить его в самый последний @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)
 в AcquireOrUpdateDocument (/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 [как 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:08] Соединение с сервером прервано. Сервер перезапустится.


TypeError: невозможно прочитать свойство "kind" undefined

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

 TypeError: невозможно прочитать свойство "kind" undefined
 в 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:20] Соединение с сервером прервано. Сервер перезапустится.


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:33] Соединение с сервером прервано. Сервер перезапустится.


ОШИБКА СЕРВЕРА: невозможно прочитать свойство charCount из undefined

 ОШИБКА СЕРВЕРА: невозможно прочитать свойство charCount из undefined
 TypeError: невозможно прочитать свойство charCount из undefined
 в 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:44 AM] Обработчик уведомлений «textDocument / didChange» завершился ошибкой с сообщением: «Невозможно прочитать свойство charCount» неопределенного значения.


Обработчик уведомлений «textDocument / didChange» завершился ошибкой с сообщением: «Невозможно прочитать свойство charCount» неопределенного значения.

 [Ошибка - 11:42:51 AM] Обработчик уведомлений textDocument / didChange завершился ошибкой с сообщением: не удалось прочитать свойство charCount из undefined.
 /Users/mafredri/.vscode/extensions/Angular.ng-template-0.1.3/server/editorServices.js:2431
 childCharCount = child.charCount ();
 ^

 TypeError: невозможно прочитать свойство charCount из undefined
 в 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:51] Соединение с сервером прервано. Сервер перезапустится.

@mafredri Ошибки во втором комментарии можно отнести к обновлению TypeScript версии 2.1. editorServices.ts требует значительных изменений для обновления версии 2.1.5, поэтому этот плагин в настоящее время использует 2.1.5.

Первый комментарий, о котором я понятия не имею.

Если он у вас есть, рассмотрите возможность удаления зависимости разработчика от @angular/language-service из вашего проекта, чтобы он вернулся к использованию встроенной версии языковой службы. Если у вас его нет, подумайте о том, чтобы добавить его в самый последний @angular/language-service .

EditorServices.ts требует значительных изменений для обновления версии 2.1.5, поэтому этот плагин в настоящее время использует 2.1.5.

@chuckjaz Я не обнаружил, что это так (как видно из моего PR # 105). Но я не могу быть уверен, что что-то не упустил из виду.

Если он у вас есть, рассмотрите возможность удаления зависимости разработчика от @ angular / language-service из вашего проекта, чтобы он вернулся к использованию встроенной версии языковой службы.

У меня это есть зависимость от разработчиков, однако моя ветка PR работает нормально, поэтому я бы предпочел не возвращаться к более старой версии языковой службы.

Как мне настроить этот плагин « Не для » смотреть в определенных папках. В настоящее время он выдает ошибки из всех файлов поставщиков (html и css), о которых я только что упоминаю в своем проекте.
Пожалуйста помоги

Эта проблема была автоматически заблокирована из-за бездействия.
Сообщите о новой проблеме, если вы столкнулись с аналогичной или связанной проблемой.

Узнайте больше о нашей политике автоматической блокировки разговоров .

_Это действие было выполнено автоматически ботом. _

Была ли эта страница полезной?
0 / 5 - 0 рейтинги