npm Node.js के लिए डिफ़ॉल्ट पैकेज मैनेजर है। फेसबुक लंबे समय से यार्न नामक एक वैकल्पिक पैकेज प्रबंधन समाधान विकसित कर रहा है। ऐसा लगता है कि यार्न डिफ़ॉल्ट समाधान के रूप में गिटहब रीडम्स से धीरे-धीरे गायब हो रहा है और आधिकारिक साइट पर आंकड़े बताते हैं कि पैकेज इंस्टॉलेशन का केवल एक अंश यार्न के साथ किया जाता है। फिर भी, यह बॉक्स के बाहर देखने लायक है।
Yarn मौजूदा package.json फ़ाइलों के साथ पूरी तरह से संगत है, इसलिए आप मौजूदा प्रोजेक्ट्स में दोनों समाधानों का आसानी से उपयोग कर सकते हैं। दोनों समाधानों के लिए कमांड में मामूली अंतर है। नीचे सबसे महत्वपूर्ण कमांड की तुलना दी गई है।:
| विवरण | NPM | धागा |
| प्रारंभ | एनपीएम init | यार्न init |
| अपडेट करें | npm स्थापित -g npm | यार्न स्व-अद्यतन |
| पैकेज स्थापित करे | npm स्थापित करें - सेव [नाम] | यार्न जोड़ना [नाम] |
| पैकेज स्थापित करे | npm स्थापित करें -सेव-देव [नाम] | यार्न जोड़ें --देव [नाम] |
| विश्व स्तर पर पैकेज स्थापित करें | npm स्थापित -g [नाम] | यार्न ग्लोबल ऐड [नाम] |
| सभी पैकेज स्थापित करें | npm स्थापित करें | यार्न स्थापित करें |
| सभी पैकेजों को अपडेट करें | एनपीएम अपडेट | यार्न अपग्रेड |
| पैकेज की स्थापना रद्द करें | npm निकालें [नाम] | यार्न हटा [नाम] |
यार्न की शुरुआत एनपीएम की कुछ समस्याओं को हल करने के लक्ष्य से हुई। सबसे स्पष्ट अंतर उच्च प्रदर्शन है: वृद्धिशील इंस्टॉलेशन, मल्टीथ्रेडिंग और नवीनतम किलर फीचर प्लग'एन'प्ले (पीएनपी) के माध्यम से, प्रदर्शन नाटकीय रूप से बढ़ता है। प्लग'एन'प्ले प्रोजेक्ट-आधारित नोड_मॉड्यूल फ़ोल्डर के विचार को अस्वीकार करता है, जो अक्सर फ़ाइलों की संख्या में खगोलीय ऊंचाइयों तक बढ़ सकता है। आप आधिकारिक प्लग'एन'प्ले श्वेत पत्र में इसके बारे में अधिक जानकारी प्राप्त कर सकते हैं। हम एक बार एनपीएम के साथ एस्लिंट स्थापित करते हैं और फिर गति में अंतर को स्पष्ट करने के लिए प्रत्येक मामले में कैश को गर्म करके यार्न के साथ स्थापित करते हैं (6x!):

