0Pricing
TypeScript Academy · درس

مساحات عمل pnpm مع TypeScript

اضبطوا مستودعًا متعدد الحزم باستخدام pnpm وtsconfig مشترك

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

ما مساحات عمل pnpm؟

تتيح مساحات عمل pnpm إدارة حزم متعددة في مستودع واحد باستخدام بنية node_modules مشتركة، مما يقلل استخدام القرص ويمكّن من الاستيراد بين الحزم.

# pnpm-workspace.yaml
packages:
  - "packages/*"
  - "apps/*"

إنشاء بنية مساحة العمل

يتضمن المستودع النموذجي متعدد الحزم في pnpm مجلد packages/ للمكتبات المشتركة ومجلد apps/ للتطبيقات القابلة للنشر.

monorepo/
├── pnpm-workspace.yaml
├── package.json          # root
├── packages/
│   ├── core/             # shared logic
│   └── ui/               # shared components
└── apps/
    └── web/              # Next.js app

ملف tsconfig.json الجذري

يضبط tsconfig الجذري الخيارات الأساسية ويشير إلى جميع حزم مساحة العمل.

{
  "compilerOptions": {
    "strict": true,
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "bundler"
  },
  "references": [
    { "path": "packages/core" },
    { "path": "packages/ui" },
    { "path": "apps/web" }
  ]
}

tsconfig على مستوى الحزمة

تمتد كل حزمة من الإعداد الجذري وتضبط إعدادَي composite وoutDir الخاصين بها.

// packages/core/tsconfig.json
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "composite": true,
    "outDir": "./dist",
    "rootDir": "./src"
  }
}

تثبيت التبعيات بين الحزم

استخدم pnpm add مع بروتوكول workspace لربط الحزم داخل المستودع متعدد الحزم.

# Add @myapp/core to apps/web
pnpm add @myapp/core --workspace --filter apps/web

# package.json entry:
# "@myapp/core": "workspace:*"

حل مسارات TypeScript

أضف أسماء مستعارة لـ paths في tsconfig الجذري حتى يحل TypeScript حزم مساحة العمل إلى مصدرها أثناء التطوير.

{
  "compilerOptions": {
    "paths": {
      "@myapp/core": ["./packages/core/src/index.ts"],
      "@myapp/ui": ["./packages/ui/src/index.ts"]
    }
  }
}

بناء جميع الحزم

استخدم tsc --build من الجذر لبناء جميع الحزم المركبة وفق ترتيب التبعيات.

# Build all
tsc --build

# Or with pnpm recursive script:
pnpm -r build

تشغيل البرامج النصية عبر الحزم

يشغّل pnpm -r (بشكل递归) أو --filter البرامج النصية في جميع الحزم المطابقة.

# Run tests in all packages
pnpm -r test

# Run only in packages/core
pnpm --filter @myapp/core test

إعداد ESLint وPrettier مشترك

احتفظ بإعدادات linting في حزمة مشتركة ووسّعها في كل حزمة لضمان اتساق أسلوب الشيفرة عبر المستودع متعدد الحزم.

// packages/eslint-config/index.js
module.exports = { extends: ["airbnb-typescript"], ... };

التكامل مع Turborepo

أضف Turborepo لتخزين مهام البناء والاختبار وlint مؤقتًا وتنفيذها بالتوازي، مع استخدام مخطط مساحة عمل pnpm لترتيب التبعيات.

npx create-turbo@latest
# or add to existing monorepo:
pnpm add turbo -w

مراجعة: مساحات عمل pnpm مع TypeScript

تنشئ مساحات عمل pnpm مع مراجع مشاريع TypeScript إعدادًا قويًا للمستودعات متعددة الحزم: بنية node_modules مشتركة، واستيرادات بين الحزم عبر workspace:*، وعمليات بناء سريعة باستخدام tsc --build.

تحقق سريع

أي ملف يحدد المجلدات التي تمثل حزم مساحة عمل pnpm؟

ما تعلمته

تمنحك مساحات عمل pnpm مع مراجع مشاريع TypeScript مستودعًا متعدد الحزم فعالًا يضم node_modules مشتركة، وربطًا بين الحزم عبر بروتوكول workspace، وعمليات بناء تدريجية. أضف Turborepo للتخزين المؤقت والتنفيذ المتوازي.

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

هل درس «مساحات عمل pnpm مع TypeScript» مجاني؟

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

ماذا ستتعلم في «مساحات عمل pnpm مع TypeScript»؟

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

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

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

كم من الوقت يستغرق درس «مساحات عمل pnpm مع TypeScript»؟

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

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

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

جميع الدروس في هذه الدورة

  1. شرح مراجع مشاريع TypeScript
  2. مساحات عمل pnpm مع TypeScript
  3. استراتيجية حزمة الأنواع المشتركة
  4. البنيات التزايدية والتخزين المؤقت في المستودعات متعددة الحزم
← العودة إلى TypeScript Academy