0Pricing
React Academy · درس

أوامر Nx Affected والتخزين المؤقت

شغّل الاختبارات وعمليات البناء المتأثرة بالتغيير فقط، وسرّع CI باستخدام التخزين المؤقت الموزع في Nx Cloud.

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

مفهوم المشاريع المتأثرة

يتتبع Nx رسم التبعيات في المستودع الأحادي. عند تغيير ملف، يحسب Nx المشاريع المتأثرة (المعدَّلة مباشرة أو التي تعتمد على مشاريع معدَّلة) ويشغّل المهام لهذه المشاريع فقط.

تشغيل اختبارات المشاريع المتأثرة

شغّل الاختبارات للمشاريع المتأثرة بالتغييرات منذ الفرع الرئيسي فقط.

# Compare to main branch:
npx nx affected --target=test --base=origin/main --head=HEAD

# Shorthand (uses nx.json defaultBase):
npx nx affected --target=test

تشغيل عمليات بناء المشاريع المتأثرة

ابنِ المشاريع المتأثرة فقط — فهذا ضروري في CI لتجنب إعادة بناء المستودع الأحادي بأكمله مع كل PR.

npx nx affected --target=build

# With parallel workers:
npx nx affected --target=build --parallel=3

الفحص واختبارات E2E للمشاريع المتأثرة

طبّق النمط نفسه على الفحص واختبارات E2E.

npx nx affected --target=lint
npx nx affected --target=e2e

كيف يحدد Nx المشاريع المتأثرة

ينشئ Nx تجزئة لجميع ملفات المصدر وملفات package.json وملفات الإعداد. يُعدّ المشروع متأثرًا إذا تغيّر أي من ملفاته، أو تغيّر أي مشروع يستورده.

ذاكرة التخزين المؤقت المحلية للحسابات

يخزّن Nx مخرجات المهام مؤقتًا (مثل نواتج البناء ونتائج الاختبارات) في .nx/cache. عند تشغيل المهمة نفسها مع بقاء المدخلات دون تغيير، يستعيد Nx النتائج من الذاكرة المؤقتة فورًا — بما في ذلك المخرجات وسجلات الطرفية.

# First run (builds):
$ npx nx build web  → Builds in 28s, cached

# Second run (no changes):
$ npx nx build web  → Cache hit! [existing outputs match] 0ms

# Clear cache if needed:
$ npx nx reset

الذاكرة المؤقتة البعيدة في Nx Cloud

تشارك Nx Cloud الذاكرة المؤقتة بين أعضاء الفريق وCI. فإذا كان أحد الزملاء قد بنى مشروعًا بالمدخلات نفسها، فسيستخدم CI الذاكرة المؤقتة البعيدة بدلًا من إعادة البناء، حتى على جهاز جديد.

# Connect workspace to Nx Cloud:
npx nx connect-to-nx-cloud

# Set CI environment variable:
# NX_CLOUD_ACCESS_TOKEN=<token>

إعداد مدخلات الذاكرة المؤقتة

اضبط الملفات التي تُعدّ مدخلات مخزنة مؤقتًا لهدف ما في project.json. استبعد الملفات التي لا تؤثر في ناتج البناء (مثل README وتجهيزات الاختبار) لزيادة فرص الاستفادة من الذاكرة المؤقتة.

// project.json
{
  "targets": {
    "build": {
      "inputs": [
        "default",  // source files
        "^default"  // upstream dependency source files
      ],
      "outputs": ["{workspaceRoot}/dist/apps/web"]
    }
  }
}

توزيع المهام (Nx Agents)

توزّع Nx Cloud Agents المهام المتأثرة على عدة أجهزة CI بالتوازي، مما يقلل بدرجة كبيرة الزمن الفعلي لعمليات CI في المستودعات الأحادية الكبيرة.

إضافة Nx Console لـ VS Code

توفر إضافة Nx Console واجهة رسومية لتشغيل أوامر Nx، وعرض رسم المشاريع، وإنشاء الشيفرة، من دون الحاجة إلى حفظ خيارات CLI.

عرض رسم المهام

يعرض nx graph --task=build رسم تبعيات المهام، بما في ذلك المهام التي تعتمد على مهام أخرى، مما يساعد في فهم ترتيب البناء.

npx nx graph --task=build

تحقق سريع

ما الذي يحدد ما إذا كانت مهمة Nx ستستفيد من الذاكرة المؤقتة؟

مراجعة

يشغّل nx affected --target=X المهام للمشاريع التي تغيّرت وتوابعها فقط. يخزّن Nx المخرجات مؤقتًا عبر إنشاء تجزئة للمدخلات، ثم يعيد النتائج فورًا. توسّع Nx Cloud هذه الإمكانية لتوفير ذاكرة مؤقتة بعيدة مشتركة بين الأجهزة. استخدم --parallel=N لتشغيل المهام بالتزامن وتسريع CI.

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

هل درس «أوامر Nx Affected والتخزين المؤقت» مجاني؟

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

ماذا ستتعلم في «أوامر Nx Affected والتخزين المؤقت»؟

شغّل الاختبارات وعمليات البناء المتأثرة بالتغيير فقط، وسرّع CI باستخدام التخزين المؤقت الموزع في Nx Cloud. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «أوامر Nx Affected والتخزين المؤقت»؟

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

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

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

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

  1. إنشاء Nx Monorepo باستخدام تطبيقات React
  2. المكتبات المشتركة والحزم الداخلية
  3. أوامر Nx Affected والتخزين المؤقت
  4. مولدات التعليمات البرمجية وأتمتة مساحة العمل
← العودة إلى React Academy