AzLearn

بنية المشروع

Project Layout

مفهوم ~17 دقيقة

بنية المشروع — Project Layout

بنية المشروع الجيدة تجعل الطريق واضحاً: src للكود، tests للاختبارات، وdist للناتج المبني إن وجد. لا تحتاج تعقيداً من البداية. المهم أن تفصل المصدر عن الناتج، وأن لا تعدّل ملفات dist يدوياً.

في tsconfig, يمكن استخدام rootDir وoutDir لتحديد المصدر والناتج. لكن حتى لو لم تحفظ الخيارات، افهم المبدأ: ملفات .ts هي الحقيقة التي تعدلها، وملفات .js الناتجة تبنى منها.

مثال بنية

index.ts

هذا مثال تمثيلي، لكنه يثبت أسماء البنية في ذهنك.

مجلد dist و.gitignore و package.json

مجلد dist/ يحتوي الناتج المبني (ملفات .js). لا تُدخله في git:

# .gitignore
dist/
node_modules/

package.json يحتوي اسم المشروع، dependencies، وسكريبتات البناء:

{
  "scripts": {
    "build": "tsc",
    "typecheck": "tsc --noEmit",
    "start": "node dist/index.js"
  },
  "devDependencies": {
    "typescript": "^5.0.0",
    "@types/node": "^20.0.0"
  }
}

"typecheck" بدون إنتاج ملفات مفيد في CI للتحقق السريع. "build" ينتج الملفات في dist/. لا تعدل محتوى dist/ يدوياً — احذفه وأعد البناء إذا احتجت.

متى تضيف مجلدات؟

أضف مجلداً عندما توجد مسؤولية واضحة. لا تبدأ بعشرة مجلدات فارغة. التنظيم الجيد ينمو مع الحاجة.

تحدي — Challenge