كيفية إدارة مشاريع TypeScript باستخدام tsconfig

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

ما هو tsconfig.json؟

ملف tsconfig.json هو ملف تكوين يستخدمه مُجمِّع TypeScript (tsc) لتحديد كيفية تجميع مشروع TypeScript. وهو يوفر طريقة قياسية لتحديد خيارات المُجمِّع والملفات التي تشكل جزءًا من المشروع. عندما يكون ملف tsconfig.json موجودًا في دليل، فإنه يضع علامة على هذا الدليل باعتباره جذر مشروع TypeScript.

إنشاء ملف tsconfig.json

لإنشاء ملف tsconfig.json، قم بتشغيل الأمر التالي في المحطة الطرفية:

tsc --init

يقوم هذا الأمر بإنشاء ملف tsconfig.json افتراضيًا بمجموعة من الخيارات المحددة مسبقًا. يمكن تخصيص الملف الناتج ليناسب الاحتياجات المحددة للمشروع.

فهم خصائص tsconfig.json الأساسية

يحتوي ملف tsconfig.json على العديد من الخصائص التي يمكن تخصيصها لإدارة مشروع TypeScript بشكل أفضل. فيما يلي بعض الخصائص الأكثر استخدامًا:

  • compilerOptions: يحدد خيارات المترجم للمشروع.
  • include: يحدد الملفات أو الدلائل التي سيتم تضمينها في المشروع.
  • exclude: يحدد الملفات أو الدلائل التي سيتم استبعادها من المشروع.
  • files: يحدد الملفات الفردية التي سيتم تضمينها في المشروع.

تكوين خيارات المترجم

تُعد خاصية compilerOptions ​​القسم الأكثر أهمية في ملف tsconfig.json. فهي تسمح للمطورين بالتحكم في جوانب مختلفة من عملية التجميع. فيما يلي بعض خيارات المترجم الشائعة الاستخدام:

{
  "compilerOptions": {
    "target": "ES6",               // Specifies the target JavaScript version
    "module": "commonjs",          // Specifies the module system
    "strict": true,                // Enables all strict type-checking options
    "outDir": "./dist",            // Redirects output structure to the directory
    "rootDir": "./src",            // Specifies the root directory of input files
    "esModuleInterop": true,       // Enables emit interoperability between CommonJS and ES Modules
    "forceConsistentCasingInFileNames": true // Disallows inconsistently-cased references to the same file
  }
}

يمكن تخصيص هذه الخيارات بناءً على متطلبات المشروع. على سبيل المثال، سيؤدي تغيير target إلى ES5 إلى إخراج JavaScript متوافقًا مع المتصفحات القديمة.

تضمين واستبعاد الملفات

في مشروع TypeScript، من المهم التحكم في الملفات التي يتم تضمينها أو استبعادها أثناء التجميع. يتم استخدام الخاصيتين include وexclude في tsconfig.json لهذا الغرض.

{
  "include": ["src/**/*"],    // Includes all TypeScript files in the src folder
  "exclude": ["node_modules", "**/*.spec.ts"] // Excludes node_modules and all spec files
}

يتضمن التكوين أعلاه جميع ملفات TypeScript من الدليل src والدلائل الفرعية الخاصة به مع استبعاد الملفات الموجودة في الدليل node_modules ​​والملفات ذات الامتداد .spec.ts.

استخدام ملفات الملكية

تُستخدم الخاصية files ​​لتضمين ملفات فردية في التجميع. وقد يكون هذا مفيدًا عندما تكون هناك حاجة لتجميع مجموعة محددة فقط من الملفات.

{
  "files": ["src/index.ts", "src/app.ts"]
}

في هذا المثال، سيتم تجميع الملفات index.ts ​​وapp.ts ​​فقط من الدليل src.

توسيع ملفات tsconfig

يتيح TypeScript توسيع ملفات tsconfig.json الأخرى باستخدام الخاصية extends. وهذا مفيد لمشاركة تكوين أساسي مشترك عبر مشاريع متعددة أو مشاريع فرعية.

{
  "extends": "./base.tsconfig.json",
  "compilerOptions": {
    "outDir": "./dist"
  }
}

في هذا المثال، يمتد الملف tsconfig.json الحالي إلى الملف base.tsconfig.json ويتجاوز الخيار outDir.

خاتمة

توفر إدارة مشاريع TypeScript باستخدام tsconfig.json مرونة كبيرة وتحكمًا في عملية التجميع. من خلال فهم واستخدام الخصائص المختلفة لـ tsconfig.json، مثل compilerOptions ​​وinclude وexclude وfiles، يمكن إدارة مشاريع TypeScript بكفاءة وفعالية أكبر. تتيح القدرة على توسيع ملفات tsconfig أيضًا تنظيم المشروع وإعادة استخدامه بشكل أفضل.