Vscode-ng-language-service: تعطل خدمة اللغة (على Angular 4.1.2): نفاد ذاكرة JavaScript

تم إنشاؤها على ١٤ مايو ٢٠١٧  ·  5تعليقات  ·  مصدر: angular/vscode-ng-language-service

لقد لاحظت مؤخرًا أن خدمة اللغة توقفت عن العمل وبدأت في رؤية ما يلي في وحدة التحكم:


خطأ فادح: CALL_AND_RETRY_LAST فشل التخصيص - نفاد ذاكرة JavaScript

 خدمة اللغة الزاويّة: 4.1.2
 TypeScript: 2.1.6
 خطأ فادح: CALL_AND_RETRY_LAST فشل التخصيص - نفاد ذاكرة JavaScript
 1: عقدة :: Abort () [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 2: عقدة :: 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. ديليب]
 6: v8 :: internal :: JSArrayBuffer :: Setup (v8 :: internal :: Handle <: internal :: jsarraybuffer i = "10">، v8 :: internal :: Isolate *، bool، void *، unsigned long، v8 :: داخلي :: 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 (char const * int *) [/ Applications / Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework / Versions / A / Libraries / libnode.dylib]
 9: v8 :: داخلي :: 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:40 م] تم إغلاق الاتصال بالخادم. سيتم إعادة تشغيل الخادم.


كان هذا بعد الترقية إلى 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 لكن هذا وحده لم يحل المشكلة ، كما أنني لم أرجع التغيير:

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

التعليق الأكثر فائدة

mafredri يمكن أن تعزى الأخطاء الموجودة في التعليق الثاني إلى تحديث TypeScript السابق 2.1. يتطلب editorServices.ts تغييرات كبيرة للترقية إلى ما بعد 2.1 وهذا هو السبب في أن هذا المكون الإضافي يستخدم حاليًا 2.1.5.

التعليق الأول ليس لدي أدنى فكرة عنه.

إذا كان لديك واحد ، ففكر في إزالة تبعية dev على @angular/language-service من مشروعك حتى يعود إلى استخدام الإصدار المضمّن من خدمة اللغة. إذا لم يكن لديك واحد ، ففكر في إضافة واحد إلى أحدث @angular/language-service .

ال 5 كومينتر

بعد إجراء الترقية أعلاه للديوب ، لاحظت بعض الأخطاء في إخراج الامتداد ، وإضافتها هنا في حالة ما إذا كانت مفيدة:


خطأ: الطول <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)
 على
 في 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
 التبديل (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: لا يمكن قراءة خاصية "بيانات التعريف" فارغة

 /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: لا يمكن قراءة خاصية "بيانات التعريف" فارغة
 في 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 صباحًا] فشل معالج الإعلام 'textDocument / didChange' مع ظهور رسالة: لا يمكن قراءة الخاصية 'charCount' لـ undefined


فشل معالج الإعلام 'textDocument / didChange' مع الرسالة: لا يمكن قراءة الخاصية 'charCount' من undefined

 [خطأ - 11:42:51 صباحًا] فشل معالج الإعلام '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 وهذا هو السبب في أن هذا المكون الإضافي يستخدم حاليًا 2.1.5.

التعليق الأول ليس لدي أدنى فكرة عنه.

إذا كان لديك واحد ، ففكر في إزالة تبعية dev على @angular/language-service من مشروعك حتى يعود إلى استخدام الإصدار المضمّن من خدمة اللغة. إذا لم يكن لديك واحد ، ففكر في إضافة واحد إلى أحدث @angular/language-service .

يتطلب editorServices.ts تغييرات كبيرة للترقية إلى ما بعد 2.1 وهذا هو السبب في أن هذا البرنامج المساعد يستخدم حاليًا 2.1.5.

chuckjaz لم أجد أن هذا هو الحال (كما يمكن رؤيته في PR # 105). لكن لا يمكنني التأكد من أنني لم أغفل شيئًا.

إذا كان لديك واحد ، ففكر في إزالة تبعية dev على @ angular / language-service من مشروعك حتى يعود إلى استخدام الإصدار المدمج من خدمة اللغة.

لدي بالفعل تبعية ديف ، ومع ذلك ، يعمل فرع العلاقات العامة الخاص بي بشكل جيد ، لذا أفضل عدم الرجوع إلى إصدار أقدم من خدمة اللغة.

كيف يمكنني تكوين هذا البرنامج المساعد " ليس " للبحث في مجلدات محددة. يقوم حاليًا بإلقاء أخطاء من جميع ملفات البائعين (html & css) التي أشير إليها للتو في مشروعي.
الرجاء المساعدة

تم قفل هذه المشكلة تلقائيًا بسبب عدم النشاط.
يرجى تقديم مشكلة جديدة إذا كنت تواجه مشكلة مشابهة أو ذات صلة.

اقرأ المزيد عن سياسة قفل المحادثة التلقائي .

_تم تنفيذ هذا الإجراء تلقائيًا بواسطة روبوت.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات