مولد ESLintrc

التالي

يبني هذا المولّد ملف تهيئة .eslintrc.json جاهزًا للاستخدام من أربعة اختيارات: بيئة المتصفح أو Node، ودعم TypeScript، ودعم React. فهو يربط eslint:recommended بالإضافات المناسبة لاختيارك من TypeScript أو React وبعض عمليات إعادة تحديد القواعد المعقولة، بحيث يمكنك لصق النتيجة في مشروعك مباشرة.

كيفية إنشاء ملف تهيئة لبرنامج ESLint

  1. 1

    اختر البيئة

    حدد ما إذا كان الكود يعمل في المتصفح أو في Node.js أو في كليهما. يضبط المولّد إدخالات `env` المناسبة، إضافة إلى `es2022`.

  2. 2

    فعّل TypeScript

    حدد TypeScript وسيضيف المولّد `@typescript-eslint/parser` وإضافة TypeScript الموصى بها.

  3. 3

    فعّل React

    حدد React وسيضيف المولّد `eslint-plugin-react` مع إعداده المسبق الموصى به.

  4. 4

    إنشاء

    اضغط على الزر فيُبنى ملف التهيئة بصيغة JSON منسقة بشكل واضح.

  5. 5

    انسخه إلى مشروعك

    الصق الناتج في `.eslintrc.json` وثبّت الإضافات التي يشير إليها.

ما الذي يحتويه ملف التهيئة المولّد

يبدأ المولّد دائمًا من eslint:recommended ويضيف بالضبط ما تستلزمه اختياراتك:

  • env مع browser و/أو node، إضافة إلى es2022
  • @typescript-eslint/parser وplugin:@typescript-eslint/recommended عند تفعيل TypeScript
  • plugin:react/recommended عند تفعيل React
  • no-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 بالصحة والأسلوب بما يتجاوز التنسيق. ولتجنب التعارضات:

  1. ثبّت eslint-config-prettier وأضفه كآخر عنصر في extends/config الخاص بك.
  2. فهو يُعطّل كل قاعدة ESLint تتعارض مع مخرجات Prettier.
  3. شغّل 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).

لا. تُستخدم اختياراتك فقط لإنشاء ملف التهيئة؛ فهي لا تُحفظ ولا تُشارك مع أطراف خارجية.

أدوات ذات صلة

الأداة متاحة بلغات أخرى