يُعدّ npm مدير الحزم القياسي لـ Node.js. مع ذلك، تعمل فيسبوك منذ فترة على تطوير حل بديل لإدارة الحزم يُدعى Yarn . يبدو أن Yarn يختفي تدريجيًا من ملف README الخاص بـ GitHub كحل افتراضي، وتشير الإحصائيات على الموقع الرسمي إلى أن جزءًا ضئيلًا فقط من عمليات تثبيت الحزم تتم باستخدام Yarn. ومع ذلك، يجدر بنا البحث في جوانب أخرى غير الظاهرة.
يتوافق Yarn تمامًا مع ملفات package.json الموجودة، لذا يمكنك استخدام كلا الحلين بسهولة في مشاريعك الحالية. تختلف أوامر الحلين اختلافًا طفيفًا فقط. فيما يلي مقارنة لأهم الأوامر.:
| وصف | npm | غزل |
| التهيئة | الحرف الأول npm | الحرف الأول |
| تحديث | تثبيت npm -g npm | التحديث الذاتي للغزل |
| ثبت المجموعة | تثبيت npm - حفظ [الاسم] | إضافة الغزل [الاسم] |
| ثبت المجموعة | تثبيت npm - حفظ ديف [الاسم] | إضافة الغزل --ديف [الاسم] |
| تثبيت الحزمة عالميًا | npm install -g [name] | إضافة الغزل العالمي [اسم] |
| قم بتثبيت كافة الحزم | تثبيت npm | تثبيت الغزل |
| قم بتحديث كافة الحزم | تحديث npm | ترقية الغزل |
| حزمة إلغاء التثبيت | npm إزالة [الاسم] | إزالة الغزل [الاسم] |
صُمم Yarn لمعالجة بعض نقاط ضعف npm. والفرق الأبرز هو تحسين الأداء: فالتثبيتات التدريجية، والمعالجة المتعددة، والميزة الرائعة الأحدث ، Plug'n'Play (PNP)، تُحسّن الأداء بشكل ملحوظ. تُغني Plug'n'Play عن الحاجة إلى مجلد `node_modules` الخاص بالمشروع، والذي غالبًا ما يتضخم بشكل كبير من حيث عدد الملفات. يمكنكم الاطلاع على المزيد من المعلومات في الورقة البيضاء الرسمية لـ Plug'n'Play . سنقوم بتثبيت eslint مرة باستخدام npm ثم باستخدام Yarn، مع استخدام ذاكرة تخزين مؤقت مُهيأة في كلتا الحالتين، لتوضيح فرق السرعة بشكل جليّ (٦ أضعاف!).:

