عن المشروع
pnpm هو مدير حزم مصمم للسرعة وكفاءة مساحة القرص. على عكس مديري الحزم التقليديين الذين يكررون التبعيات عبر المشاريع، يقوم pnpm بتخزين جميع الملفات في مخزن واحد قابل للعنونة بالمحتوى على القرص ويربطها بمجلدات node_modules الخاصة بالمشروع باستخدام الروابط الصلبة (hard-links) أو reflinks. يضمن هذا النهج أنه إذا استخدمت مشاريع متعددة نفس الإصدار من الحزمة، فسيتم تخزينها مرة واحدة فقط.
تشمل القدرات الرئيسية ما يلي:
- تخزين فعال: يتم إضافة الملفات التي تختلف بين الإصدارات فقط إلى المخزن، مما يوفر مساحة كبيرة على القرص.
- الصرامة: لا يمكن للحزم الوصول إلا إلى التبعيات المحددة صراحة في ملف package.json الخاص بها.
- الحتمية: يستخدم ملف pnpm-lock.yaml لضمان عمليات تثبيت متسقة.
- دعم Monorepo: ميزات مدمجة محسنة لإدارة مساحات العمل (workspaces).
- إدارة وقت التشغيل: يعمل كمدير لإصدارات Node.js.
- عابر للمنصات: يدعم Windows و Linux و macOS.
- نسخة Rust تجريبية: يتضمن 'pacquet'، وهي واجهة سطر أوامر (CLI) مكتوبة بلغة Rust.
تشير اختبارات الأداء إلى أن pnpm يمكن أن يكون أسرع بمرتين من البدائل مثل npm و Yarn classic.