إنشاء Nx Monorepo باستخدام تطبيقات React
أنشئ مساحة عمل Nx وأضف تطبيقات React وافهم مخطط المشروع.
إنشاء Nx Monorepo باستخدام تطبيقات React درس مجاني في React Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.
لماذا Nx؟
Nx هو نظام بناء ذكي للمستودعات الأحادية. يوفر تشغيل المهام حسب المشاريع المتأثرة، بحيث لا تُبنى أو تُختبر إلا التغييرات، والتخزين المؤقت، بحيث لا تُعاد المهام غير المتغيرة، ومولّدات لإنشاء هيكل التطبيقات والمكتبات.
إنشاء مساحة عمل Nx جديدة
أنشئ هيكل مساحة عمل Nx جديدة مُعدّة مسبقاً للعمل مع React.
# Create workspace:
npx create-nx-workspace@latest myorg --preset=react-monorepo
# or for Next.js:
npx create-nx-workspace@latest myorg --preset=nextبنية مساحة العمل
ينظم Nx الشيفرة في apps/ (تطبيقات قابلة للنشر) وlibs/ (مكتبات مشتركة). ويحتوي كل مشروع على ملف project.json خاص به يضم أهداف المهام.
myorg/
apps/
web/ # React SPA
admin/ # Admin React SPA
api/ # NestJS backend
libs/
ui/ # shared UI components
data-access/ # data fetching hooks
utils/ # shared utilities
nx.json # workspace config
package.json # single package.jsonإضافة تطبيق React
استخدم مولّد React في Nx لإضافة تطبيق جديد مع توصيل كل الإعدادات مسبقاً.
# Add a new React app:
npx nx generate @nx/react:app customer-portal
# Add a Next.js app:
npx nx generate @nx/next:app marketingتشغيل المهام
شغّل عمليات البناء والاختبار والفحص والتشغيل للمشاريع الفردية أو لجميع المشاريع.
# Serve a specific app:
npx nx serve web
# Build all apps:
npx nx run-many --target=build --all
# Test a specific library:
npx nx test uiمخطط المشروع
يفتح nx graph تصوراً تفاعلياً لجميع التطبيقات والمكتبات وتبعياتها — لتعرف المشاريع التي تعتمد على كل مكتبة.
npx nx graphالتخزين المؤقت في Nx
يخزّن Nx مخرجات المهام مؤقتاً محلياً. ويؤدي تشغيل مهمة غير متغيرة مرة أخرى إلى الوصول إلى التخزين المؤقت فوراً. ويوسّع Nx Cloud التخزين المؤقت ليشمل تخزيناً مؤقتاً بعيداً مشتركاً بين أعضاء الفريق وCI.
# First run: builds and caches
npx nx build web # ~30s
# Second run (no changes): cache hit
npx nx build web # <1s — served from cacheمسارات المهام
حدّد تبعيات المهام في nx.json. يؤدي تشغيل build تلقائياً إلى تشغيل build لجميع التبعيات السابقة أولاً.
// nx.json
{
"targetDefaults": {
"build": {
"dependsOn": ["^build"], // run dependency builds first
"cache": true
},
"test": {
"cache": true
}
}
}وسوم فرض القيود
أضف وسومًا إلى المشاريع (مثل scope:ui وtype:app) واستخدم قواعد ESLint لمنع التطبيقات من استيراد الشيفرة الداخلية لتطبيقات أخرى.
// project.json
{
"tags": ["scope:web", "type:app"]
}
// .eslintrc.json
{
"rules": {
"@nx/enforce-module-boundaries": ["error", {
"depConstraints": [
{ "sourceTag": "type:app", "onlyDependOnLibsWithTags": ["type:lib"] }
]
}]
}
}الأسماء المستعارة لمسارات TypeScript
يُهيّئ Nx تلقائيًا الملف tsconfig.base.json بأسماء مستعارة للمسارات، بحيث تستورد المكتبات المشتركة باستخدام @myorg/ui بدلًا من المسارات النسبية الطويلة.
// tsconfig.base.json (auto-generated)
{
"compilerOptions": {
"paths": {
"@myorg/ui": ["libs/ui/src/index.ts"],
"@myorg/utils": ["libs/utils/src/index.ts"]
}
}
}
// Usage in apps:
import { Button } from '@myorg/ui';تحقق سريع
ما وظيفة nx affected --target=build في مستودع Nx أحادي؟
مراجعة
أنشئ مساحة عمل Nx باستخدام create-nx-workspace. استخدم nx generate لإنشاء التطبيقات والمكتبات، وnx serve/build/test لتنفيذ المهام، وnx affected في CI لمعالجة المشاريع التي تغيّرت فقط. يضمن التخزين المؤقت عودة المهام التي لم تتغير نتائجها فورًا.
الأسئلة الشائعة
هل درس «إنشاء Nx Monorepo باستخدام تطبيقات React» مجاني؟
نعم — نص درس «إنشاء Nx Monorepo باستخدام تطبيقات React» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.
ماذا ستتعلم في «إنشاء Nx Monorepo باستخدام تطبيقات React»؟
أنشئ مساحة عمل Nx وأضف تطبيقات React وافهم مخطط المشروع. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟
لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «إنشاء Nx Monorepo باستخدام تطبيقات React»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟
نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء Nx Monorepo باستخدام تطبيقات React
- المكتبات المشتركة والحزم الداخلية
- أوامر Nx Affected والتخزين المؤقت
- مولدات التعليمات البرمجية وأتمتة مساحة العمل