مولد ESLintrc
يبني هذا المولّد ملف تهيئة .eslintrc.json جاهزًا للاستخدام من أربعة اختيارات: بيئة المتصفح أو Node، ودعم TypeScript، ودعم React. فهو يربط eslint:recommended بالإضافات المناسبة لاختيارك من TypeScript أو React وبعض عمليات إعادة تحديد القواعد المعقولة، بحيث يمكنك لصق النتيجة في مشروعك مباشرة.
كيفية إنشاء ملف تهيئة لبرنامج ESLint
-
1
اختر البيئة
حدد ما إذا كان الكود يعمل في المتصفح أو في Node.js أو في كليهما. يضبط المولّد إدخالات `env` المناسبة، إضافة إلى `es2022`.
-
2
فعّل TypeScript
حدد TypeScript وسيضيف المولّد `@typescript-eslint/parser` وإضافة TypeScript الموصى بها.
-
3
فعّل React
حدد React وسيضيف المولّد `eslint-plugin-react` مع إعداده المسبق الموصى به.
-
4
إنشاء
اضغط على الزر فيُبنى ملف التهيئة بصيغة JSON منسقة بشكل واضح.
-
5
انسخه إلى مشروعك
الصق الناتج في `.eslintrc.json` وثبّت الإضافات التي يشير إليها.
ما الذي يحتويه ملف التهيئة المولّد
يبدأ المولّد دائمًا من eslint:recommended ويضيف بالضبط ما تستلزمه اختياراتك:
envمعbrowserو/أوnode، إضافة إلىes2022@typescript-eslint/parserوplugin:@typescript-eslint/recommendedعند تفعيل TypeScriptplugin:react/recommendedعند تفعيل Reactno-consoleوno-unused-varsمضبوطتان علىwarn
الناتج هو كائن JSON بسيط بالشكل التقليدي لملفات .eslintrc.json، جاهز للصق وتوسيعه بقواعدك الخاصة.
مقارنة بين التكوين المسطح والتكوين التقليدي
أوقف ESLint دعم تنسيق .eslintrc.* لصالح تنسيق التكوين المسطح (eslint.config.js). الفروقات الرئيسية هي:
| الجانب | التقليدي (.eslintrc) | المسطح (eslint.config.js) |
|---|---|---|
| التنسيق | JSON، YAML أو CommonJS | وحدة ESM أو CommonJS بلغة جافا سكريبت |
| التوسيع | extends: ["plugin:react/recommended"] |
يُوزَّع في المصفوفة: ...reactPlugin.configs.recommended |
| التجاوزات | مصفوفة overrides مع أنماط glob |
عدة كائنات في مصفوفة الإعدادات |
| المتغيرات العامة | env: { browser: true } |
languageOptions.globals مع استيرادات صريحة |
| التجاهل | ملف .eslintignore |
الحقل ignores في مصفوفة الإعدادات |
يجب أن تستخدم المشاريع الجديدة التكوين المسطح. أما المشاريع الحالية فيمكن أن تستمر بالتكوين التقليدي طوال سلسلة الإصدارات 10.x، لكن يُنصح بإجراء الانتقال.
نظام بيئة البرامج الإضافية
إضافة البرامج النموذجية لمشاريع React/TS:
@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier
هذا يمثل ست حزم لتكوين واحد يتمتع برأي واضح إلى حد ما. يضيف المولّد الإضافات التي تختارها فقط، لذا تثبّت ما يشير إليه ملف التهيئة فقط.
التعايش مع Prettier
تتولى أداة Prettier معالجة التنسيق، بينما تُعنى أداة ESLint بالصحة والأسلوب بما يتجاوز التنسيق. ولتجنب التعارضات:
- ثبّت
eslint-config-prettierوأضفه كآخر عنصر في extends/config الخاص بك. - فهو يُعطّل كل قاعدة ESLint تتعارض مع مخرجات Prettier.
- شغّل Prettier بشكل منفصل (عند الحفظ في المحرر، أو في خطاف ما قبل الالتزام، أو في الـ CI).
لا تستخدم eslint-plugin-prettier في المشاريع الجديدة؛ فهو يُبطئ ESLint بتشغيل Prettier داخله. افصل بين الأداتين.
نصائح لضبط القواعد
- ابدأ بمرونة، ثم شدّد تدريجيًا؛ وفعّل التحذيرات قبل الأخطاء.
- تجاوزات الاختبارات: غالبًا ما تتطلب ملفات الاختبار تخفيف
no-unused-expressionsمع المتغيرات العامة الخاصة بـ Jest. - تجاوزات السكربتات: قد تحتاج سكربتات البناء إلى متغيرات Node العامة دون إضافة
env: nodeبشكل شامل. - توثيق التجاوزات: يستحق كل تجاوز للقواعد تعليقًا يوضح سببه.
مطابقة التكوين مع محررك
يتطلب برنامج VS Code تثبيت وإعداد إضافة ESLint. أضف هذه الإضافات إلى إعدادات مساحة العمل الخاصة بك لتفعيل التصحيح التلقائي عند حفظ الملفات.
{
"editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
"eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}
الأسئلة الشائعة
بالنسبة للمشاريع الجديدة، يجب استخدام التكوين المسطح (eslint.config.js). هذا المولّد يُخرج الصيغة التقليدية .eslintrc.json التي يقرؤها ESLint مباشرة في الوضع القديم؛ ويوضح جدول المقارنة أعلاه ما الذي يتغير إذا انتقلت لاحقًا.
نعم، إذا كنت تستخدم TypeScript؛ فإن المُعرّفين @typescript-eslint/parser و@typescript-eslint/eslint-plugin يتيحان إجراء فحص دقيق متوافق مع TypeScript. وبالنسبة للقواعد المتعلقة بأنواع البيانات (وليس فقط القواعد النحوية)، يجب أيضًا تهيئة محرك التحليل باستخدام المُعرّف project: './tsconfig.json'.
عادةً ما تغيب الاعتمادات المرتبطة بالنسخة المفقودة في بيئة التحقق من الاستقرار (CI). تأكد من أن الإصدار @typescript-eslint/* والإضافات (plugins) وإصدار أداة ESLint متطابقون بين البيئة المحلية وبيئة التحقق من الاستقرار. استخدم الإصدار npm ci (وليس npm install) في بيئة التحقق من الاستقرار لاحترام ملف القفل (lockfile).
لا. تُستخدم اختياراتك فقط لإنشاء ملف التهيئة؛ فهي لا تُحفظ ولا تُشارك مع أطراف خارجية.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
عدّاد FPS
قِس معدل الإطارات FPS في المتصفح عبر requestAnimationFrame: تنعيم، وأدنى وأقصى معدل إطارات، وحد تنبيه، ورسم بياني اختياري. يعمل محليًا بلا رفع ملفات وبلا API.
منسق HTML
نسّق HTML محلياً في المتصفح بمسافة بادئة من مسافتين أو أربع مسافات. لا يُرفع HTML ولا يُتحقق منه.
محاكي عدّاد البرنامج
تتبّع قائمة مبسطة من التعليمات ثابتة الطول عبر التسميات والتفرعات والقفزات والاستدعاءات والعودة وعناوين 16 أو 24 أو 32 بت.
الأداة متاحة بلغات أخرى
- ESLintrc Generator [EN]
- ESLintrc-generator [SV]
- ESLintrc-Generator [DE]
- ESLintrc-generator [NL]
- ESLintrc ジェネレーター [JA]
- Generador de ESLintrc [ES]
- ESLintrc 생성기 [KO]
- Gerador de ESLintrc [PT]
- Generator .eslintrc [PL]
- Générateur d'ESLintrc [FR]
- Bộ tạo ESLintrc [VI]
- ESLintrc生成器 [ZH]
- เครื่องสร้าง ESLintrc [TH]
- ESLintrc Üreticisi [TR]
- Generator ESLintrc [ID]
- Generatore ESLintrc [IT]
- Генератор ESLintrc [RU]