0Pricing
TypeScript Academy · درس

المستودعات المتعددة ومراجع المشاريع

أنشئ مستودعًا متعدد الحزم في مساحة عمل، ووصل مراجع مشاريع TypeScript للحصول على عمليات بناء سريعة وتزايدية وأنواع نظيفة بين الحزم.

المستودعات المتعددة ومراجع المشاريع درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 1. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 1 دروس في المجموع.

مقدمة

الهدف: تنظيم مستودع متعدد الحزم قابل للتوسع. ستعرّف مساحات العمل، وتضيف مراجع المشاريع، وتبني باستخدام tsc -b لإخراج تزايدي.

  • مساحات عمل pnpm/yarn
  • مشاريع مركبة
  • أنواع مشتركة

تخطيط مساحة العمل

تخطيط بسيط لحزمتين: shared (مكتبة) وapp (يعتمد على shared). تربط مساحات العمل الحزم المحلية.

# folder structure (for reference)
			/monorepo
			package.json
			tsconfig.base.json
			packages/
			shared/
			src/index.ts
			package.json
			tsconfig.json
			app/
			src/index.ts
			package.json
			tsconfig.json

مساحات العمل الجذرية

صرّح بمساحات العمل لكي يربط مدير الحزم التبعيات المحلية. أضف نصوص build/clean البرمجية باستخدام وضع بناء TS.

// package.json (root)
			{
			"name": "monorepo",
			"private": true,
			"workspaces": ["packages/*"],
			"scripts": {
			"build": "tsc -b packages/*",
			"clean": "tsc -b packages/* --clean"
			}
			}

حزمة shared

اجعل المكتبة مشروعًا من نوع composite. أصدِر التصريحات لكي تتمكن الحزم المعتمدة من التحقق من الأنواع بسرعة.

// packages/shared/tsconfig.json
{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "outDir": "dist",
    "rootDir": "src",
    "declaration": true,
    "composite": true
  },
  "include": ["src"]
}

// packages/shared/src/index.ts
export interface User { id: string; name: string }
export const hello = (u: User) => `Hello, ${u.name}`

حزمة app + المراجع

أضف إدخالًا في references للاعتماد على shared. يترجم أداة البناء shared أولًا، ثم app.

// packages/app/tsconfig.json
			{
			"extends": "../../tsconfig.base.json",
			"compilerOptions": {
			"outDir": "dist",
			"rootDir": "src",
			"composite": true
			},
			"references": [
			{ "path": "../shared" }
			],
			"include": ["src"]
			}

			// packages/app/src/index.ts
		import { hello } from "shared"
console.log(hello({ id: "u1", name: "Ada" }))

الإعداد الأساسي والنصائح

نصائح:

  • أنشئ tsconfig.base.json لخيارات المصرّف المشتركة.
  • استخدم تعيينات paths التي تعكس أسماء الحزم.
  • شغّل tsc -b --watch للتطوير المحلي التزايدي.

التحقق من متطلبات المراجع

تحقق سريع: ما الذي يجب أن تتضمنه كل حزمة مشار إليها؟

خلاصة

خلاصة: تربط مساحات العمل الحزم المحلية؛ وتتيح مراجع المشاريع (composite + references) عمليات بناء tsc -b سريعة وتزايدية، وأنواعًا موثوقة عبر الحزم.

الأسئلة الشائعة

هل درس «المستودعات المتعددة ومراجع المشاريع» مجاني؟

نعم — نص درس «المستودعات المتعددة ومراجع المشاريع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 1 دروس في المجموع.

ماذا ستتعلم في «المستودعات المتعددة ومراجع المشاريع»؟

أنشئ مستودعًا متعدد الحزم في مساحة عمل، ووصل مراجع مشاريع TypeScript للحصول على عمليات بناء سريعة وتزايدية وأنواع نظيفة بين الحزم. تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 1.

كم من الوقت يستغرق درس «المستودعات المتعددة ومراجع المشاريع»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

← العودة إلى TypeScript Academy