ما هو pnpm؟

مقدمة إلى pnpm ، انخفاض استبدال npm الذي يوفر لك مساحة على القرص

لقد كتبت مؤخرًا عن مدى ضخامتناnode_modulesولماذا هذا ليس بالضرورة أمرًا سيئًا ، ولكنه سيقلل من استهلاك القرص الصلب ، أليس كذلك؟

يمكن استخدام كل بايت تم حفظه على القرص لشيء آخر غير رمز المكتبات ، ولدي محرك أقراص صلبة SSD بسعة 512 جيجابايت على جهاز MacBook Pro الذي اشتريته في عام 2010 ، لكن بعض أجهزة الكمبيوتر الجديدة في عام 2019 مزودة بمحرك أقراص ذي حالة صلبة سعة 128 جيجابايت (حدث خطأ ما في قانون مور عندما يتعلق الأمر بذلك إلى مساحة القرص الصلب).

على وجه الخصوص ، تتمثل إحدى الطرق في جعل تخزين كود المكتبات مركزيًا في مكان مركزي ومشاركته مع جميع المشاريع التي تعمل عليها.

هذا هو عرض القيمة الرئيسي لpnpm، مشروع رائع جدًا يمكنك التحقق منهhttps://pnpm.js.org.

إنه في الأساس بديل بديل لـnpm، مما يعني أنه بمجرد تثبيته ، يمكنك استدعاءpnpm installلتنزيل تبعيات المشروع ، وسيعمل الجميع بشفافية من أجلك.

إذا كان لديك 10 مشاريع تستخدم React ، في نفس الإصدار ،pnpmبتثبيته مرة واحدة ، ثم الإشارة إلى التثبيت الأول عبر جميع مشاريعك الأخرى.

هذا يعني أيضًا أن جزء تهيئة المشروع يستغرق وقتًا أقل بكثير مما لو كان عليه تنزيل الموارد باستخدام المعيارnpmإجراء. إنه أسرع حتى لوnpmالحزمة المخزنة مؤقتًا ، لأنpnpmيجعل ارتباطًا صعبًا بالمستودع المحلي المركزي ، بينماnpmيقوم بعمل نسخة من الحزمة من ذاكرة التخزين المؤقت.

تقوم بتثبيتpnpmاستخدامnpmبالطبع 😁

npm install -g pnpm

ثم يجريpnpmبديل ، يمكنك استخدام جميع ملفاتnpmالأوامر:

pnpm install react
pnpm update react
pnpm uninstall react

وهكذا.

pnpmتحظى بتقدير خاص في تلك الشركات حيث توجد حاجة للحفاظ على عدد كبير من المشاريع بنفس التبعيات.

على سبيل المثالخللهي واحدة من تلك الشركات ، حيث أنها تستضيف مشاريع gazillion Node.js.

pnpmيمنحهم ، بالإضافة إلىnpmالأوامر المعتادة ، بما في ذلك بعض المرافقpnpm recursive، والذي يستخدم لتشغيل نفس الأمر عبر جميع المشاريع في مجلد. على سبيل المثال ، يمكنك تهيئة 100 مشروع مخزنة في المجلد الحالي عن طريق التشغيلpnpm recursive install. مفيد.

إذا كنت تستخدمnpx، وهي طريقة سهلة (وموصى بها) لتشغيل المرافق مثلcreate-react-app، ستحصل على فوائدpnpmباستخدام ملفpnpxالأمر الذي يأتي معpnpm:

pnpx create-react-app my-cool-new-app

أين يتم تثبيت الحزم؟ في macOS ، في~/.pnpm-store/المجلد (حيث~يعني مجلد منزلك). أنا ركبتlodashكمثال وكان هذا هو هيكل المجلد الناتج:

➜  ~ tree .pnpm-store/
.pnpm-store/
└── 2
    ├── _locks
    ├── registry.npmjs.org
    │   └── lodash
    │       ├── 4.17.11
    │       │   ├── integrity.json
    │       │   ├── node_modules
    │       │   │   └── lodash
    │       │   │       ├── ...
    │       │   ├── package -> node_modules/lodash
    │       │   └── packed.tgz
    │       └── index.json
    └── store.json

هناك العديد من الأشياء المتقدمة التي يمكنك التعرف عليها حول الأداة ، ولكن آمل أن يساعدك هذا في البدء باستخدامهاpnpm!

هل يجب استخدامه للاستخدام اليومي؟ ربما لا ، فقط التزمnpmما لم تكن لديك احتياجات تحلها هذه الأداة لك - يكون نقص مساحة القرص أحد هذه الاحتياجات.

تحميل مجانيكتيب Node.js


المزيد من دروس العقدة: