pnpm ميعرفش Corepack
لما تكتب pnpm install، pnpm مش بيدور على Corepack. الـ shell يدور في PATH من الأول للآخر ويشغّل أول ملف اسمه pnpm.
بعد corepack enable، Corepack يحط ملف وسيط اسمه pnpm جنب تثبيت Node. لو الملف ده هو الأول في PATH، الرحلة تبقى:
لو pnpm عالمي قديم جاي قبله في PATH، القديم هو اللي يشتغل ومش هيعدّي على Corepack. افحص:
command -v pnpm # Windows: where pnpmcorepack enablecommand -v pnpmpnpm --versionهل كل Node بينزل معاه npm؟
توزيعات Node الرسمية عادةً بتشحن npm معاها، لكنهم مشروعين وإصدارين منفصلين. إصدار Node يختار نسخة npm وقت نشره، وتقدر تحدّث npm منفصل:
node --versionnpm --versionnpm install -g npm@11لما تغيّر Node بـ nvm مثلًا، أنت بتنتقل لتثبيت Node تاني وغالبًا معاه npm تاني. متفترضش إن تحديث npm حدّث Node، أو العكس.
Corepack قصة تالتة: اتوزع مع Node من ١٤٫١٩ لحد قبل ٢٥، لكنه مش مفعّل لمجرد وجوده. من Node ٢٥ اتشال من توزيعة Node. اعمل onboarding يتحمل الحالتين:
npm install -g corepack@0.36.0corepack enablenpm مش في التفعيل الافتراضي
corepack enable من غير أسماء يفعّل Yarn وpnpm. npm اللي جاي مع Node يفضل هو اللي يشتغل، وCorepack مش هيشوفه. يعني مشروع pnpm ممكن يرفض yarn install، لكن npm install يعدّي من الباب الجانبي.
عشان npm كمان يعدّي على نفس البوابة:
corepack enable npmأو نادِه صراحةً: corepack npm install. الحالتان تخلي npm يمر على الفحص.
اقفلها لو خربت المسار
corepack disable يشيل الوسائط. corepack disable pnpm يشيل pnpm بس. مفيد لو فعّلت وpnpm بقى بيشير لمكان غلط، أو عايز ترجع للنسخة العامة مؤقتًا عشان تجرب.
على نظام الملفات للقراءة بس، enable يفشل لأنه مش قادر يكتب جنب node. الحل في الوثائق aliases في الشيل، زي alias pnpm="corepack pnpm". ده جهازك، مش اتفاق الفريق.
لو مش عايز تغيّر PATH
تقدر تنادي المدير صراحةً من خلال Corepack:
corepack pnpm@10.15.0 --versioncorepack pnpm installالسطر التاني لسه بيتحقق من حقل المشروع. corepack yarn install جوه مشروع pnpm يقع؛ النداء الصريح مش ثغرة.