Skip to content

مساحات العمل

تفاصيل حول كيفية استخدام Volta في بيئة مساحة العمل، حيث يوجد مستودع واحد به مشاريع متعددة، وكلها ترغب في مشاركة إعدادات Volta.

TIP

تمت إضافة هذه الميزة في Volta 0.8.2، ولا تعمل في الإصدارات السابقة.

تكوين التمديد

في قسم "volta" من package.json، يمكنك تحديد إدخال بمفتاح "extends". يجب أن تكون قيمة هذا الإدخال مسارًا لملف JSON آخر يحتوي أيضًا على قسم "volta". سيتم حل المسارات النسبية بالنسبة للملف الذي يحددها. سيتم دمج أي إعدادات Volta (مثل إصدار "node" أو "yarn") مع الإعدادات في الملف المشار إليه بـ "extends"، مع إعطاء الأولوية للملف الحالي. لذلك، إذا كنت تريد استخدام إصدار Node واحد لجميع المشاريع، يمكنك تعيين هذه الإصدارات في الدليل الجذر، ثم كل مشروع يحتاج فقط إلى "extends": "../path/to/root/package.json".

مثال

بالنظر إلى هيكل المجلد التالي ومحتوى package.json:

.
├── package.json
└── packages
    ├── cli
    │   └── package.json
    └── utils
        └── package.json
  • package.json
json
{
  "volta": {
    "node": "12.16.1",
    "yarn": "1.22.4"
  }
}
  • packages/cli/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}
  • packages/utils/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}

تشغيل node في أي مكان في مساحة العمل سيجعلك تستخدم Node 12.16.1. إذا قمت بتحديث هذا الإصدار في package.json الجذر، فسيتم استخدامه تلقائيًا في جميع المشاريع دون الحاجة إلى نسخ الإعدادات في كل مشروع فرعي.

تثبيت الأدوات

عندما تشغل volta pin في مساحة العمل لاختيار إصدار أداة، سيضيف Volta دائمًا هذه الإعدادات إلى أقرب package.json يجده. لذلك، في المثال أعلاه، إذا شغلت volta pin node@14 في مشروع packages/utils الفرعي، سيتم كتابة إصدار Node الجديد في packages/utils/package.json وسيطبق فقط على مشروع utils الفرعي، وليس على أي مشروع آخر. هذا يسمح لك بتخصيص إصدارات الأدوات بسهولة حسب المشروع.

إذا كنت ترغب في استخدام volta pin لإجراء تغييرات على التكوين الجذر، فانتقل أولاً إلى دليل جذر مساحة العمل باستخدام cd، ثم شغل volta pin من هناك.

الـ Hooks

إذا كان مشروعك يستخدم hooks المشروع، يمكنك وضعها في دليل .volta للمشروع الفرعي، أو في دليل .volta في الجذر. سيبحث Volta عن الـ hooks في كل موقع يشير إليه مفتاح "extends"، بحيث يمكن تخصيص الإعدادات في أي مستوى مطلوب.

الملفات الثنائية المحلية للمشروع

بالإضافة إلى البحث عن الـ hooks في كل مستوى، سيبحث Volta أيضًا في كل مستوى للكشف عن التبعيات المحلية للمشروع التي يجب استخدامها عند تشغيل أدوات الطرف الثالث. سيحاول العثور عليها في node_modules/.bin بالنسبة لكل ملف يشير إليه "extends".