Skip to content

التبديل بين المشاريع

إحدى المزايا الرئيسية لـ Volta هي معالجته السلسة لإصدارات الأدوات المختلفة في المشاريع المختلفة. تشرح هذه الصفحة كيفية إدارة Volta تلقائيًا لبيئة JavaScript الخاصة بك عند الانتقال بين المشاريع.

التبديل التلقائي للإصدارات

على عكس مديري الإصدارات الأخرى التي تتطلب منك التبديل يدويًا بين إصدارات الأدوات، يتعامل Volta مع هذا تلقائيًا بناءً على دليلك الحالي.

كيف يعمل

  1. عند تشغيل أوامر JavaScript (مثل node أو npm أو ملفات الحزم الثنائية)، تعترض shims Volta الأمر
  2. يتحقق Volta من دليلك الحالي ليرى ما إذا كنت في مشروع بإصدارات أدوات مثبتة
  3. إذا كان الأمر كذلك، يستخدم Volta الإصدارات المثبتة في package.json للمشروع
  4. إذا لم تكن في مشروع بإصدارات مثبتة، يستخدم Volta أدواتك الافتراضية

كل هذا يحدث بشفافية، دون أي أوامر إضافية.

مثال على سير العمل

تخيل أن لديك مشروعين بمتطلبات Node.js مختلفة:

المشروع A (~/projects/project-a/package.json):

json
{
  "volta": {
    "node": "14.19.1",
    "npm": "6.14.16"
  }
}

المشروع B (~/projects/project-b/package.json):

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

قد يكون سير عملك كالتالي:

bash
# في المشروع A
cd ~/projects/project-a
node --version  # يعرض v14.19.1
npm --version   # يعرض v6.14.16

# التبديل إلى المشروع B
cd ~/projects/project-b
node --version  # يعرض تلقائيًا v16.14.2
npm --version   # يعرض تلقائيًا v8.5.0

# خارج أي مشروع
cd ~
node --version  # يعرض إصدار Node الافتراضي الخاص بك

المشاريع المتداخلة

إذا كان لديك مشاريع متداخلة، سيستخدم Volta إصدارات الأدوات من أقرب package.json يحتوي على قسم volta.

مثال:

/parent-project/package.json (به قسم volta، node@14)
/parent-project/child-project/package.json (به قسم volta، node@16)
/parent-project/other-directory/ (لا يوجد package.json)

إذا شغلت أوامر في:

  • /parent-project/child-project/ - يستخدم Volta Node.js 16
  • /parent-project/other-directory/ - يستخدم Volta Node.js 14
  • /parent-project/ - يستخدم Volta Node.js 14

ملفات الحزم الثنائية

التبديل التلقائي لـ Volta ينطبق أيضًا على ملفات الحزم الثنائية. على سبيل المثال، إذا كان لديك إصدار محدد من TypeScript للمشروع وشغلت tsc، يضمن Volta استخدام الإصدار الصحيح.

الحزم العالمية مقابل المحلية

عندما تشغل ملف حزمة ثنائي:

  1. إذا كان الملف الثنائي موجود في node_modules/.bin/ للمشروع، يستخدم Volta هذا الإصدار
  2. إذا لم يكن موجودًا، ولكن تم تثبيت الحزمة عالميًا عبر Volta، يستخدم هذا الإصدار
  3. وإلا، يعرض خطأ عدم العثور على الأمر

استكشاف الأخطاء وإصلاحها

إذا واجهت مشاكل في تبديل الإصدارات:

  • تحقق من وجود قسم volta في package.json لمشروعك
  • شغل volta list all لفحص الأدوات التي ثبتتها
  • تحقق من تثبيت الأداة المطلوبة لمشروعك أو كإصدار افتراضي
  • شغل volta which node لرؤية إصدار Node.js الذي يستخدمه Volta ولماذا