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