Το npm είναι ο τυπικός διαχειριστής πακέτων για το Node.js. Ωστόσο, το Facebook αναπτύσσει εδώ και αρκετό καιρό μια εναλλακτική λύση διαχείρισης πακέτων που ονομάζεται Yarn . Το Yarn φαίνεται να εξαφανίζεται σιγά σιγά από το README του GitHub ως η προεπιλεγμένη λύση και τα στατιστικά στοιχεία στον επίσημο ιστότοπο δείχνουν ότι μόνο ένα κλάσμα των εγκαταστάσεων πακέτων εκτελούνται με το Yarn. Παρ 'όλα αυτά, αξίζει να ρίξετε μια ματιά πέρα από τα προφανή.
Το Yarn είναι πλήρως συμβατό με τα υπάρχοντα αρχεία package.json, επομένως μπορείτε εύκολα να χρησιμοποιήσετε και τις δύο λύσεις σε υπάρχοντα έργα. Οι εντολές για τις δύο λύσεις διαφέρουν μόνο ελαφρώς. Παρακάτω παρουσιάζεται μια σύγκριση των πιο σημαντικών εντολών.:
| Περιγραφή | npm | Νήμα |
| Αρχικοποίηση | npm init | νήματα init |
| Εκσυγχρονίζω | εγκατάσταση npm -g npm | αυτο-ενημέρωση νήματος |
| Εγκατάσταση πακέτου | εγκατάσταση npm - αποθήκευση [όνομα] | νήματα προσθήκη [όνομα] |
| Εγκατάσταση πακέτου | εγκατάσταση npm --save-dev [όνομα] | νήματα --dev [όνομα] |
| Εγκαταστήστε πακέτο παγκοσμίως | εγκατάσταση npm -g [όνομα] | νήματα παγκόσμια προσθήκη [όνομα] |
| Εγκαταστήστε όλα τα πακέτα | εγκατάσταση npm | εγκατάσταση νήματος |
| Ενημέρωση όλων των πακέτων | ενημέρωση npm | αναβάθμιση νημάτων |
| Απεγκαταστήστε το πακέτο | npm αφαίρεση [όνομα] | νήματα αφαίρεση [όνομα] |
Το Yarn σχεδιάστηκε για να αντιμετωπίσει ορισμένες από τις αδυναμίες του npm. Η πιο προφανής διαφορά είναι η βελτιωμένη απόδοσή του: οι σταδιακές εγκαταστάσεις, η πολυνηματική λειτουργία και η τελευταία λειτουργία-κλειδί , το Plug'n'Play (PNP), αυξάνουν δραματικά την απόδοση. Το Plug'n'Play εξαλείφει την ανάγκη για έναν φάκελο `node_modules` που βασίζεται σε έργα, ο οποίος μπορεί συχνά να αυξηθεί σε αστρονομικές αναλογίες σε αριθμό αρχείων. Περισσότερες πληροφορίες μπορείτε να βρείτε στην επίσημη λευκή βίβλο του Plug'n'Play . Θα εγκαταστήσουμε το eslint μία φορά με το npm και στη συνέχεια με το Yarn, το καθένα με προθερμασμένη προσωρινή μνήμη, για να δείξουμε με σαφήνεια τη διαφορά ταχύτητας (6x!).:

