خطأ في لغة Javascript/TypeScript على مستوى المشروع من امتداد اللغة المدمج
أتلقى الخطأ التالي في VSCode كلما فتحت مساحة العمل الخاصة بي.
To enable project-wide JavaScript/TypeScript language features, exclude large folders with source files that you do not work on.
Source: TypeScript and Javascript Language Feat... [BUTTON: CONFIGURE EXCLUDES]
أضغط على زر Configure Excludes على الرسالة ويفتح الملف التالي FRONTENDAPP/jsconfig.json
{"compilerOptions":{"target":"es6","experimentalDecorators":true},"exclude":["node_modules","bower_components","tmp","vendor",".git","dist"]}
يبدو لي أنه تم تكوينه بشكل صحيح وفقًا للوثائق أدناه: https://code.visualstudio.com/docs/languages/javascript
فلماذا الخطأ طوال الوقت؟
تم إعداد مساحة عملي على النحو التالي:
FOLDER: NOTES
FOLDER: FRONTENDAPP
FOLDER: BACKENDAPP
كل مجلد به ملف jsconfig.json.
الملف المقابل في الـ NOTES و BACKENDAPP هو نفسه ويبدو كما يلي:
{"compilerOptions":{"target":"es6","experimentalDecorators":true},"exclude":["node_modules","bower_components","tmp","vendor",".git","dist"]}
الإجابة رقم 1
تحديد المجلدات التي تحتوي على العديد من الملفات: du -a | cut -d/ -f2 | sort | uniq -c | sort -nr
162114 node_modules
5837 .git
4967 concat-stats-for
443 app
77 tests
72 dist
8 config
7 public
تحقق من المجلدات التي لم يتم استبعادها في jsconfig.json لملفات JS و TS
find concat-stats-for -type f | sed -e 's/.*\.//' | sort | uniq -c | sort -n | grep -Ei '(js|ts)$'
42 ts
3003 js
إذا لم يكن المجلد هو رمز التطبيق، أضف هذا المجلد إلى الاستثناءات في jsconfig.json.
الإجابة رقم 2
واجهت نفس المشاكل وأدركت:
- كان لدي
node_modulesفي المجلدات الفرعية - كان لدي نسخ من
dist(مثلdist1،dist2) لأغراض التصحيح، والتي تم تجاهلها في git لكنها لم تُتجاهل في vscode. - كان لدي مجلدات
.npmو.npm-tmpتحتوي على الكثير من الأشياء بالداخل. - بصرف النظر عن
distكان لدي أيضًا مجلد مؤقت آخر.app-cache.
انتهى بي المطاف إلى الإدخال التالي في /jsconfig.json (مكررة قليلاً لتحسين القراءة) لجعل التحذير يختفي:
"exclude": [
".git",
".app-cache",
".npm",
".npm-tmp",
"dist",
"dist*",
"node_modules",
"subfolder/dist",
"subfolder/node_modules",
"**/dist/*",
"**/node_modules/*",
]
}
