مساحات العمل
تفاصيل حول كيفية استخدام 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
{
"volta": {
"node": "12.16.1",
"yarn": "1.22.4"
}
}
packages/cli/package.json
{
"volta": {
"extends": "../../package.json"
}
}
packages/utils/package.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"
.