كورباك
تمت الإضافة في: v16.9.0، v14.19.0
[مستقر: 1 - تجريبي]
مستقر: 1 استقرار: 1 - تجريبي
كورباك هي أداة تجريبية للمساعدة في إدارة إصدارات مديري حزمك. فهي تعرض وكلاء ثنائيات لكل مدير حزمة مدعوم ، وعند استدعائها ، ستحدد أي مدير حزم تم تكوينه للمشروع الحالي ، وستقوم بتنزيله إذا لزم الأمر ، وأخيراً تشغيله.
على الرغم من توزيع كورباك مع التثبيتات الافتراضية لـ Node.js ، إلا أن مديري الحزم التي يديرها كورباك لا يشكلون جزءًا من توزيع Node.js و:
- عند الاستخدام الأول ، يقوم كورباك بتنزيل أحدث إصدار من الشبكة.
- أي تحديثات مطلوبة (متعلقة بثغرات أمنية أو غير ذلك) تقع خارج نطاق مشروع Node.js. إذا لزم الأمر ، يجب على المستخدمين النهائيين معرفة كيفية التحديث بأنفسهم.
تبسط هذه الميزة عمليتين أساسيتين:
- تسهل عملية انضمام المساهمين الجدد ، حيث لن يضطروا إلى اتباع عمليات التثبيت الخاصة بالنظام بعد الآن فقط للحصول على مدير الحزمة الذي تريد منهم استخدامه.
- يسمح لك بضمان استخدام الجميع في فريقك لإصدار مدير الحزمة الذي تنوي استخدامهم بالضبط ، دون الحاجة إلى مزامنته يدويًا في كل مرة تحتاج فيها إلى إجراء تحديث.
سير العمل
تمكين الميزة
نظراً لكونها تجريبية، يجب تمكين كورباك صراحةً لكي يحدث أي تأثير. للقيام بذلك، قم بتشغيل corepack enable
، والذي سيقوم بإعداد الارتباطات الرمزية في بيئتك بجانب ملف node
الثنائي (وكتابة الارتباطات الرمزية الموجودة إذا لزم الأمر).
من هذه النقطة فصاعداً، سيعمل أي اتصال بالـ الملفات الثنائية المدعومة بدون أي إعدادات إضافية. إذا واجهت مشكلة، قم بتشغيل corepack disable
لإزالة الوكلاء من نظامك (و فكر في فتح مشكلة في مستودع كورباك لإعلامنا بذلك).
تهيئة الحزمة
ستجد وكلاء Corepack أقرب ملف package.json
في التسلسل الهرمي للمجلدات الحالية لاستخراج خاصية "packageManager"
الخاصة به.
إذا تطابقت القيمة مع مدير حزم مدعوم، فسيضمن Corepack تشغيل جميع المكالمات إلى الملفات الثنائية ذات الصلة مقابل الإصدار المطلوب، وتنزيله عند الطلب إذا لزم الأمر، وإيقافه إذا تعذر استرجاعه بنجاح.
يمكنك استخدام corepack use
لطلب من Corepack تحديث package.json
المحلي الخاص بك لاستخدام مدير الحزم الذي تختاره:
corepack use # يضع أحدث إصدار من 7.x في package.json
corepack use yarn@* # يضع أحدث إصدار في package.json
ترقية الإصدارات العالمية
عند التشغيل خارج مشروع موجود (على سبيل المثال عند تشغيل yarn init
)، سيستخدم Corepack بشكل افتراضي إصدارات محددة مسبقًا تتوافق تقريبًا مع أحدث إصدارات مستقرة من كل أداة. يمكن تجاوز هذه الإصدارات عن طريق تشغيل الأمر corepack install
مع إصدار مدير الحزم الذي ترغب في تعيينه:
corepack install --global
بدلاً من ذلك، يمكن استخدام علامة أو نطاق:
corepack install --global pnpm@*
corepack install --global yarn@stable
سير العمل دون اتصال بالشبكة
لا تتوفر إمكانية الوصول إلى الشبكة في العديد من بيئات الإنتاج. نظرًا لأن Corepack يقوم عادةً بتنزيل إصدارات مدير الحزم مباشرةً من سجلاتها، فقد يتعارض ذلك مع هذه البيئات. لتجنب حدوث ذلك، قم باستدعاء الأمر corepack pack
بينما لا يزال لديك اتصال بالشبكة (عادةً في نفس الوقت الذي تقوم فيه بإعداد صورة النشر). سيضمن هذا توفر مديري الحزم المطلوبين حتى بدون اتصال بالشبكة.
يحتوي الأمر pack
على أعلام متنوعة. راجع وثائق Corepack التفصيلية لمزيد من المعلومات.
مدراء الحزم المدعومون
تتوفر الملفات الثنائية التالية من خلال Corepack:
مدير الحزم | أسماء الملفات الثنائية |
---|---|
Yarn | yarn ، yarnpkg |
pnpm | pnpm ، pnpx |
الأسئلة الشائعة
كيف يتفاعل Corepack مع npm؟
على الرغم من أن Corepack يمكنه دعم npm مثل أي مدير حزم آخر، إلا أن برامج التشغيل التابعة له غير مُفعّلة افتراضيًا. لهذا بعض النتائج:
- من الممكن دائمًا تشغيل أمر
npm
ضمن مشروع مُهيأ للاستخدام مع مدير حزم آخر، لأن Corepack لا يمكنه اعتراضه. - على الرغم من أن
npm
خيار صالح في خاصية"packageManager"
، إلا أن عدم وجود برنامج تشغيل سيؤدي إلى استخدام npm العام.
لا يعمل الأمر npm install -g yarn
يمنع npm تجاوز الملفات الثنائية Corepack عن طريق الخطأ عند إجراء تثبيت عام. لتجنب هذه المشكلة، ضع في اعتبارك أحد الخيارات التالية:
- لا تقم بتشغيل هذا الأمر؛ سيوفر Corepack ملفات الحزم الثنائية على أي حال وسيكفل دائمًا توفر الإصدارات المطلوبة، لذا فإن تثبيت مديري الحزم صراحةً ليس ضروريًا.
- أضف علم
--force
إلىnpm install
؛ سيخبر هذا npm بأنه من الجيد تجاوز الملفات الثنائية، لكنك ستمحو ملفات Corepack في هذه العملية. (قم بتشغيلcorepack enable
لإعادتها.)