tsconfig.json: Build:No inputs were found in config file — كيفية الإصلاح

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا لا يرى TypeScript ملفاتي؟

\n\n

تفتح مشروعًا على TypeScript، وتشغل عملية البناء، وفجأة — بام! — دش بارد على شكل رسالة: tsconfig.json: Build:No inputs were found in config file. هل هذا مألوف؟ إذا سبق لك أن واجهت إعداد TypeScript، فمن المحتمل أنك رأيت هذا الخطأ. إنه يخيف المبتدئين ويزعج المحترفين. لكن لا تتعجل في نتف شعرك أو لعن Microsoft.

\n\n

في هذه المقالة، لن نكتفي بإظهار كيفية إسكات الخطأ بسرعة. سنقوم بتحليل تشريحه: لماذا يحدث، وما السيناريوهات التي تؤدي إليه، وكيفية إعداد tsconfig.json بحيث لا ترى هذه الرسالة مرة أخرى. سيكون هذا مفيدًا لكل من يبدأ في تعلم TypeScript ولمن يريد فهم آلية عمل المترجم بشكل أعمق.

\n\n

ونعم، سنتحدث بالعربية، بشكل حيوي ومع أمثلة. هيا بنا!

\n\n

ماذا يعني خطأ "Build:No inputs were found in config file"؟

\n\n

إذا ترجمنا من لغة المترجم إلى لغة البشر، فإن TypeScript يقول لك: "أنا لا أعرف أي الملفات يجب ترجمتها. لقد طلبت مني بناء المشروع، لكنك لم تحدد أين توجد الملفات المصدرية." يبحث المترجم tsc عن ملفات .ts و .tsx، لكنه لا يجد أيًا منها في الدلائل التي حددتها (أو حددها هو نفسه).

\n\n

يحدث الخطأ في حالتين نموذجيتين:

\n
    \n
  • لقد أنشأت للتو tsconfig.json في مجلد فارغ.
  • \n
  • لقد قمت بإعداد الحقول include أو exclude أو rootDir بشكل غير صحيح.
  • \n
\n\n

دعنا نحلل كل سبب بالتفصيل، حتى لا تتمكن فقط من نسخ الحل، بل تفهم لماذا يعمل.

\n\n

السبب رقم 1: لا توجد ملفات TypeScript في المشروع

\n\n

السبب الأكثر تافهًا ولكنه شائع. لقد أنشأت tsconfig.json في مجلد لا يحتوي على أي ملف .ts. يبحث المترجم بأمانة — ولا يجد شيئًا.

\n\n

مثال على المشكلة:

\n
my-project/\n├── tsconfig.json\n└── (لا شيء آخر)
\n\n

تشغيل npx tsc — ونحصل على الخطأ. الحل واضح: قم بإنشاء ملف index.ts واحد على الأقل.

\n\n

كيفية الإصلاح:

\n
my-project/\n├── tsconfig.json\n├── src/\n│   └── index.ts   # <-- ها هو، المنقذ!
\n\n

ولكن ماذا لو كانت الملفات موجودة وما زال الخطأ يظهر؟ إذن نتعمق أكثر.

\n\n

السبب رقم 2: مسار غير صحيح في حقل include

\n\n

حقل include في tsconfig.json يخبر المترجم: "ابحث عن الملفات هنا". إذا حددت مجلدًا غير موجود أو أخطأت في المسار، فلن يجد المترجم شيئًا.

\n\n

إعداد غير صحيح:

\n
{\n  "compilerOptions": {\n    "target": "ES2020",\n    "module": "commonjs",\n    "outDir": "./dist"\n  },\n  "include": ["src/**/*"]  // والمجلد src غير موجود!\n}
\n\n

في هذا المثال، المجلد src غير موجود. يحاول المترجم بأمانة العثور على الملفات وفقًا للنمط src/**/*، ولا يجد — ويصدر الخطأ.

\n\n

كيفية الإصلاح:

\n
    \n
  • تحقق من وجود المجلد الذي حددته في include.
  • \n
  • تأكد من وجود ملفات .ts أو .tsx في هذا المجلد.
  • \n
  • استخدم المسارات النسبية. إذا كان tsconfig.json في الجذر والملفات المصدرية في src/، اكتب "src/**/*".
  • \n
\n\n

الإعداد الصحيح:

\n
{\n  "compilerOptions": {\n    "target": "ES2020",\n    "module": "commonjs",\n    "outDir": "./dist"\n  },\n  "include": ["src/**/*"]\n}\n// تأكد من وجود المجلد src وأنه يحتوي على ملفات .ts
\n\n

السبب رقم 3: تعارض بين include و exclude

\n\n

أحيانًا تحدد مجلدًا في include، ولكن بعد ذلك في exclude تس

المدونات

توصيات الكتب