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