Vscode-ng-language-service: تحطم ngcc مع تكوين monorepo / متعدد المشاريع - Ivy Native LS

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

صف الخلل

يتعطل ملحق VSCode في المستودعات ذات أشكال tsconfigs المتعددة.

يبدو أنه يحاول ngcc المجلد node_modules بجوار كل tsconfig.

لإعادة إنتاج

  1. قم بتمكين الامتداد على الريبو مثل هذا https://github.com/jscutlery/convoyr
  2. افتح ال app.component.ts

سلوك متوقع

لا ينبغي أن تتحطم.

السجلات

[Info  - 8:18:20 PM] Angular language server process ID: 91911
[Info  - 8:18:20 PM] Using typescript/lib/tsserverlibrary v4.0.5 from /.vscode/extensions/angular.ng-template-0.1101.0-next.1/node_modules/typescript/lib/tsserverlibrary.js
[Info  - 8:18:20 PM] Using @angular/language-service/bundles/ivy v11.1.0-next.3 from /.vscode/extensions/angular.ng-template-0.1101.0-next.1/node_modules/@angular/language-service/bundles/ivy.js
[Info  - 8:18:20 PM] Log file: /Library/Application Support/Code/logs/20201218T201630/exthost3/Angular.ng-template/nglangsvc.log
[Error - 8:18:25 PM] Cannot read file '/dev/jscutlery/convoyr/dev/jscutlery/convoyr/tsconfig.json'.
No inputs were found in config file '/dev/jscutlery/convoyr/dev/jscutlery/convoyr/apps/sandbox/tsconfig.json'. Specified 'include' paths were '["**/*.ts"]' and 'exclude' paths were '[]'.
Error: ENOENT: no such file or directory, scandir '/dev/jscutlery/convoyr/apps/sandbox/node_modules'
    at Object.readdirSync (fs.js:854:3)
    at Object.fs.readdirSync (electron/js2c/asar.js:621:39)
    at NodeJSFileSystem.readdir (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/src/ngtsc/file_system/src/node_js_file_system.js:53:23)
    at EntryPointCollector.walkDirectoryForPackages (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/entry_point_collector.js:63:56)
    at /dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js:62:100
    at Object.trackDuration (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/utils.js:93:22)
    at DirectoryWalkerEntryPointFinder.walkBasePathForPackages (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js:62:39)
    at DirectoryWalkerEntryPointFinder.findEntryPoints (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js:40:30)
    at /dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/execution/analyze_entry_points.js:28:41
    at new ClusterMaster (/dev/jscutlery/convoyr/node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:45:30)
[Error - 8:18:26 PM] Failed to run ngcc for /dev/jscutlery/convoyr/apps/sandbox/tsconfig.json:
    ngcc for /dev/jscutlery/convoyr/apps/sandbox/tsconfig.json returned exit code 1, stderr: 
    Language service will remain disabled.
bug

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

yjaaidi القضية هنا كافية - لا داعي لفتح واحد على الزاوي / الزاوي! لم نقرر بعد كيف / إذا كنا نريد دمج تقارير خدمة اللغة بين مستودعي إعادة الشراء ، لذا فنحن نراقب كليهما في الوقت الحالي.

لقد قمت أنا و Keen بإقران هذا بالأمس وتمكنا من تعقب السبب الجذري لـ 4 مشكلات منفصلة باستخدام المستودع المرتبط. يجب أن يكون لدينا إصلاحات مدمجة وجاهزة للإصدار التالي في يناير. شكرا على التقرير!

ال 5 كومينتر

شكرا للرابط إلى الريبو ، إنه مفيد للغاية.

يبدو أن ngcc لا يتعامل مع الحالة التي يتم فيها تعيين cwd يدويًا إلى دليل tsconfig.json ، على عكس الدليل حيث node_modules هو.

https://github.com/angular/vscode-ng-language-service/blob/132b2051c44de5504bc77776430c066ecc5fa88a/server/src/ngcc.ts#L36 -L44

عند تشغيل ngcc من convoyr/apps/sandbox ، رأيت نفس الفشل الذي نشرته.
عند التشغيل من الدليل الجذر ، يعمل ngcc بشكل جيد.

أيضًا ، يجب ألا نعطل خدمة اللغة نهائيًا في حالة فشل ngcc. لقد أنشأت # 1041 لتتبع هذا.

سررت بالمساعدة!

هل يجب أن نفتح مشكلة على github.com/angular/angular؟

yjaaidi القضية هنا كافية - لا داعي لفتح واحد على الزاوي / الزاوي! لم نقرر بعد كيف / إذا كنا نريد دمج تقارير خدمة اللغة بين مستودعي إعادة الشراء ، لذا فنحن نراقب كليهما في الوقت الحالي.

لقد قمت أنا و Keen بإقران هذا بالأمس وتمكنا من تعقب السبب الجذري لـ 4 مشكلات منفصلة باستخدام المستودع المرتبط. يجب أن يكون لدينا إصلاحات مدمجة وجاهزة للإصدار التالي في يناير. شكرا على التقرير!

ذلك كان سريعا. عمل عظيم!
اسمحوا لي أن أعرف إذا كان بإمكاني المساعدة.

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

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

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

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