كيفية تفعيل واستخدام pnpm في ServBay
يُعدّ pnpm أداة حديثة وفعّالة لإدارة حزم Node.js، صُممت خصيصًا لمعالجة مشاكل مديري الحزم التقليديين مثل npm وyarn عند التعامل مع الاعتماديات. من خلال اعتماده على نظام ملفات موجه حسب المحتوى وروابط الهارد والسيمبوليك، يقلل pnpm بشكل كبير من استهلاك مساحة القرص ويزيد من سرعة التثبيت بشكل ملحوظ. إذا كنت مطورًا تعمل على Node.js باستخدام ServBay، فإن إجادتك لـ pnpm ستزيد من كفاءتك في إدارة اعتماديات المشروع.
يتكامل حزمة Node.js في ServBay مع أداة corepack، وهي أداة تجريبية رسمية من Node.js لإدارة وتوجيه المشاريع لاستخدام إصدارات محددة من مديري الحزم (كـ npm، yarn، وpnpm). عادةً، بعد تثبيت Node.js عبر ServBay، يمكنك تفعيل pnpm عن طريق أمر corepack.
تفعيل pnpm
إذا لم يكن بإمكانك استخدام أمر pnpm مباشرة، فعادةً يعود السبب لعدم تفعيله بعد عبر corepack. يرجى اتباع الخطوات التالية لتفعيله:
افتح تطبيق الطرفية (Terminal).
أدخل الأمر التالي لتفعيل
pnpmمن خلالcorepack:bashcorepack enable pnpm1إذا تم تنفيذ الأمر بنجاح، فلن تظهر عادةً أي رسالة. هذا يعني أن
corepackقد قام بربط أمرpnpmمع النظام بنجاح.تحقق من تفعيل
pnpmبنجاح وافحص رقم الإصدار:bashpnpm -v1يجب أن يُظهر هذا الأمر رقم إصدار
pnpmالحالي، على سبيل المثال:bash9.1.01إذا ظهر رقم الإصدار في الطرفية، فهذا يعني أن
pnpmأصبح جاهزًا للاستخدام.
رسائل تحميل corepack
عند استخدام أمر pnpm، إذا رأيت رسالة مشابهة للتالية، فهذا يعني أن corepack يقوم بتحميل أو تحديث إصدار محدد من pnpm المطلوب. هذه آلية طبيعية لـ corepack بهدف التأكد من أنك تستخدم الإصدار المطلوب للمشروع أو الأحدث من pnpm.
bash
$ pnpm -v
! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.0.6.tgz
? Do you want to continue? [Y/n]1
2
3
2
3
أدخل الحرف Y ثم اضغط Enter للسماح لـ corepack بالتحميل والاستمرار في تنفيذ أمر pnpm. بعد اكتمال التحميل، سيتم تنفيذ الأمر وعرض رقم الإصدار (أو نتيجة أي أمر pnpm المدخل).
مزايا pnpm الرئيسية وأمثلة للاستخدام
تقوم فلسفة تصميم pnpm على إدارة الاعتماديات بكفاءة عالية. فهو يخزن جميع الحزم بشكل مركزي في مخزن عالمي قابل للتوجيه حسب المحتوى، بحيث لا يُخزن كل إصدار من الحزم إلا مرة واحدة فقط. وعندما يحتاج المشروع إلى اعتماد معين، يقوم pnpm بإنشاء رابط هارد من المخزن المركزي، بينما يتم بناء مجلد node_modules في المشروع عبر روابط سيمبوليك بنية مسطحة. لكن بخلاف مشكلة الاعتماديات الشبحية في npm، يضمن pnpm أن يستخدم المشروع فقط الاعتماديات المعرفة بشكل صريح.
هذا الأسلوب يوفر مزايا هامة منها:
- توفير مساحة القرص: تشارك المشاريع المختلفة نفس إصدارات الاعتماديات بدون تكرار الملفات.
- سرعة تثبيت أعلى: معظم الاعتماديات تكون موجودة بالفعل في المخزن المركزي، ويكفي إنشاء الرابط فقط، مما يسرع العملية مقارنة بالتحميل أو النسخ.
- هيكل اعتماديات صارم: يمنع مشاكل "الاعتماديات الشبحية"، ويُبقي العلاقة بين اعتماديات المشروع واضحة وسهلة الإدارة.
فيما يلي بعض الأوامر النموذجية لاستخدام pnpm في بيئة ServBay:
لنفترض أن مشروعك موجود داخل مجلد فرعي من جذر مواقع ServBay، مثلًا: /Applications/ServBay/www/my-servbay-app.
تثبيت اعتماديات المشروع
بعد الدخول إلى مجلد المشروع، استخدم أمر pnpm install لتثبيت جميع الاعتماديات المعرفة في package.json:
bash
cd /Applications/ServBay/www/my-servbay-app
pnpm install1
2
2
سيقوم pnpm بفحص المخزن العالمي، تحميل الحزم غير المتوفرة، ثم إنشاء روابط في node_modules داخل المشروع.
إضافة اعتماديات جديدة
لإضافة اعتمادية جديدة إلى المشروع، كحزمة lodash مثلًا:
bash
pnpm add lodash1
سيتم تحميل الحزمة (إذا لم تكن متوفرة في المخزن)، إنشاء الرابط، وتحديث ملفي package.json وpnpm-lock.yaml تلقائيًا.
إزالة اعتماديات
لإزالة اعتمادية لم تعد مطلوبة، مثل lodash:
bash
pnpm remove lodash1
سيتم إزالة الحزمة من اعتماديات المشروع وتحديث ملفات package.json و pnpm-lock.yaml.
تشغيل السكريبتات
يمكنك كذلك تشغيل السكريبتات المعرفة في خانة scripts في ملف package.json باستخدام pnpm:
bash
pnpm run dev
# أو ببساطة
pnpm dev1
2
3
2
3
تنفيذ أوامر الحزم (pnpx)
على غرار npx، يوفر pnpm أمر pnpx (أو استخدام pnpm exec مباشرة) لتشغيل الأوامر التي تم تثبيتها محليًا في مجلد node_modules/.bin في المشروع بدون الحاجة لتثبيتها عالميًا:
bash
pnpm exec webpack --version
# أو
pnpx webpack --version1
2
3
2
3
الخلاصة
باستخدام أمر corepack enable pnpm يمكنك تفعيل pnpm بسهولة في بيئة Node.js ضمن ServBay. ومع كفاءة pnpm العالية فإنك ستتمكن من تسريع تثبيت الاعتماديات لمشاريع Node.js وزيادة إنتاجيتك بشكل ملحوظ، بالإضافة إلى الاستفادة من توفير المساحة على القرص. للمطورين الباحثين عن تجربة تطوير متكاملة وفعّالة عبر ServBay، يُعد pnpm خيارًا موصى به للغاية.
