استخدم tslint للتحقق من الواردات غير الصالحة بين الحزم والمجلدات في مشروع TypeScript الخاص بك.
التحقق التلقائي وتوثيق بنية الحزمة (عبر tslint-folders-diagrams ).
Tslint-Folders مستقر ويستخدم كل يوم في CI Builds وعلى صناديق DEV (Linux ، MAC ، Windows) لمنتج رئيسي واحد على الأقل.
احفظ الوقت الذي يقضيه رمزًا يدويًا في مراجعة الأخطاء "السخيفة" مثل:
file-name-casing TSLINT الافتراضي فقط إلى نمط واحد) نستخدم Semver للنسخة. للاطلاع على الإصدارات المتاحة ، انظر الإصدارات.
yarn add tslint-folders
قم بتحرير tslint.json للحصول على إدخال "rulesDirectory" يشير إلى Tslint-Folders.
عادة ما يكون هذا مثل:
"rulesDirectory": "./node_modules/tslint-folders/dist/lib/"
انظر tslint.tslint-folders.json للحصول على مثال.
يتم تمكين قواعد TSLINT وتكوينها في tslint.json .
راجع القسم تحت حزم tsf-folders-imports-between-packages في tslint.tslint-folders.json أو اختبارات الوحدة للحصول على أمثلة.
اختياريا ، يمكنك تقسيم تكوين tslint-folders إلى ملف منفصل ، مثل tslint.tslint-folders.json . للإشارة إلى الملف ، أضف هذا الرمز إلى tslint.json :
"extends": "./tslint.tslint-folders.json"
على افتراض أن tslint موجود بالفعل ، يجب عليك الآن رؤية أي واردات غير متوقعة (أو اختبارات معطلة) يتم وضع علامة عليها بواسطة TSLINT. يجب أن يعمل هذا كالمعتاد لـ TSLINT: على سطر الأوامر ، أو في محرر مثل الكود المرئي (قد يتطلب تحديث المحرر).
انظر tslint-folders-diagrams
يمكن إنشاء مخطط تلقائيًا من نفس التكوين المستخدم للتحقق من صحة الرمز:

انظر Tslint-Folders-Diagrams للحصول على التفاصيل.
فيما يلي ملخص للقواعد المخصصة الحالية.
| معرف القاعدة | وصف |
|---|---|
| اختبار TSF-Folders-اختبار | اكتشف اختبار الوحدة المعوقة أو مجموعة الاختبار أو اختبار التكامل. |
| TSF-Folders-File-Names | يتحقق من صحة غلاف أسماء الملفات. على غرار القاعدة القياسية ، file-name-casing باستثناء أنه يدعم الأغلفة المتعددة المسموح بها ، ويوضح أسماء الملفات بأحرف غير صالحة (مثل المساحات أو الفواصل). |
| TSF-Folders-import-fromeders-folders | اكتشف استيراد من مجلد غير قياسي مثل node_modules |
| TSF-Folders-imports-pet-packages | اكتشف استيراد من حزمة "المستوى الأعلى": على سبيل المثال ، استيراد من حزمة shell من التطبيق عندما تكون داخل حزمة "منطقة". هذه هي القاعدة المخصصة الرئيسية. يمكن أيضًا اكتشاف متى تحتوي الحزمة على اسم باستخدام اسم الحزم (بدلاً من المسار النسبي). |
| TSF-Folders-Test-With-Breakpoint | اكتشف عندما يكون اختبار التكامل نقطة استراحة مثل browser.debug() |
| موقع | عنوان URL |
|---|---|
| رمز المصدر (جيثب) | https://github.com/mrseanryan/tslint-polders |
| صفحة جيثب | https://mrseanryan.github.io/tslint-polders/ |
| NPM | https://www.npmjs.com/package/tslint-polders |
تستخدم جميع القواعد نفس البادئة tsf-folders- .
لتوضيح المطورين أن هناك قاعدة مخصصة متورطة ، تتضمن جميع الرسائل من القواعد أيضًا معرف القاعدة.
يمكن استبدال بعض هذه القواعد بتكوين tslint القياسي. ومع ذلك ، فإن وجود قواعد مخصصة يعطي رسائل أكثر وضوحًا لمساعدة المطور على معرفة ما الذي يجب إصلاحه (أو القاعدة التي يمكن تعطيلها لهذا الرمز).
بعض القواعد لا تتعلق بدقة حول "المجلدات" ، ولكن يتم تضمينها هنا لأنها تبدو مفيدة أيضًا.
لمزيد من التفاصيل والأمثلة يرجى الاطلاع على اختبارات الوحدة
للعمل على الكود المصدري لـ Tslint-Folders ، هناك بعض البرامج النصية:
| يأمر | وصف |
|---|---|
| بناء الغزل | يبني القواعد إلى مجلد "Dist" ، من حيث يمكن تنفيذها. |
| الوبر الغزل | الوضوح رمز المصدر للقواعد. |
| تبدأ الغزل | يبني واختبارات وتبحث الرمز. |
| اختبار الغزل | يختبر القواعد مقابل ملفات المواصفات (*.lint) |
| اختبار الغزل واحد | اختبار قاعدة واحدة مقابل ملفات المواصفات (*.lint) |
اختبارات الوحدة للقاعدة tsf-folders-imports-between-packages موجودة هنا.
تستخدم اختبارات الوحدة بيانات الاختبار للتحقق من حدود الحزمة لموقع ويب نموذجي إلى حد ما.
يمكن رؤية تكوين المطابقة في tslint.tslint-folders.json
تعتمد بيانات الاختبار حول موقع ويب يستخدم حزم متعددة:
| اسم الحزمة | وصف |
|---|---|
| صدَفَة | Shell Application - هذه هي حزمة المستوى الأعلى ، ويمكنها الاستيراد من أي حزمة أخرى. |
| توسو | منطقة "تطبيق Todo" في الموقع ، يتم استضافتها داخل القشرة. لا ينبغي استيرادها من القشرة أو من حزم "المنطقة" الأخرى. |
| توصيل تودو | منطقة "معلومات الاتصال" في الموقع ، يتم استضافتها داخل القشرة. لا ينبغي استيرادها من القشرة أو من حزم "المنطقة" الأخرى. |
| عبوة الشبكة | شبكة واجهة المستخدم التي تستخدمها حزم المنطقة. لا ينبغي استيراد أي حزم أخرى معترف بها. |
| utils | حزمة "utils" تستخدمها حزم القشرة والمنطقة. لا ينبغي استيراد أي حزم أخرى معترف بها. |
مثال على التحقق من الصحة : يجب أن تكون "shell" قادرة على الاستيراد من "منطقة Todo" ، ولكن ليس العكس (Shell "في مستوى أعلى من التجريد ، وتريد أيضًا تجنب التبعيات ذات الاتجاهين).
يمكن لـ Tslint-Folders أيضًا التحقق من صحة الواردات بين اللاعبين الفرعيين للحزمة.
تم تكوين حزمة بيانات الاختبار "منطقة TODO" مع المقاطع الفرعية النموذجية إلى حد ما مثل "المكونات" و "النماذج". tslint.tslint-folders.json تم تكوينه للتحقق من الواردات بين هذه المجلدات.
| اسم المجلد الفرعي | وصف |
|---|---|
| عناصر | مجلد المستوى الأعلى لمكونات واجهة المستخدم. يمكن الاستيراد من أي من المجلدات الأخرى المعترف بها. |
| ViewModels | مجلد نماذج العرض ، المستخدمة من قبل مكونات واجهة المستخدم. لا يمكن استيرادها إلا من النماذج أو النماذج. |
| النماذج | مجلد النماذج ، المستخدمة من قبل نماذج العرض. يمكن الاستيراد فقط من utils. |
| utils | مجلد "utils". لا ينبغي استيراد أي مجلدات أخرى معترف بها. |
مثال على التحقق من الصحة : يجب أن تكون "المكونات" قادرة على الاستيراد من "النماذج" ، ولكن ليس العكس (المكونات هي في مستوى أعلى من التجريد ، وتريد أيضًا تجنب التبعيات ذات الاتجاهين).
انظر المساهمة ReadMe.
يعتمد هذا المشروع على Star-Library-Starter Starter Starter.
بدأ المشروع في تجنب الاضطرار إلى إصلاح مشكلات الترميز المماثلة مرارًا وتكرارًا في قواعد رمز TypeScript الكبيرة.
انظر هنا
هذا إلى حد كبير. اسمحوا لي أن أعرف ما إذا كان هذا مفيدًا أو كيف يمكن تحسينه!
العمل الأصلي لشون ريان - Mr.Sean.ryan (في gmail.com)
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا - راجع ملف الترخيص للحصول على التفاصيل