npm jest domyślnym menedżerem pakietów dla Node.js. Facebook od dawna pracuje nad alternatywnym rozwiązaniem do zarządzania pakietami o nazwie Yarn . Wygląda na to, że Yarn powoli znika z plików Readmes GitHuba jako rozwiązanie domyślne, a statystyki na oficjalnej stronie pokazują, że tylko część instalacji pakietów jest przeprowadzana za pomocą Yarn. Niemniej jednak warto szukać nieszablonowo.
Yarn jest w pełni kompatybilny z istniejącymi plikami package.json, dzięki czemu można łatwo korzystać z obu rozwiązań w istniejących projektach. Polecenia dla obu rozwiązań różnią się tylko nieznacznie. Poniżej znajduje się porównanie najważniejszych poleceń.:
| Opis | npm | Przędza |
| Zainicjuj | npm init | init przędzy |
| Aktualizacja | npm install -g npm | samodzielna aktualizacja przędzy |
| Zainstaluj pakiet | npm install --save [nazwa] | dodanie przędzy [nazwa] |
| Zainstaluj pakiet | npm install --save-dev [nazwa] | dodać przędzę --dev [nazwa] |
| Zainstaluj pakiet na całym świecie | npm install -g [nazwa] | globalne dodanie przędzy [nazwa] |
| Zainstaluj wszystkie pakiety | npm install | instalacja przędzy |
| Zaktualizuj wszystkie pakiety | aktualizacja npm | aktualizacja przędzy |
| Odinstaluj pakiet | npm remove [nazwa] | przędza usuń [nazwa] |
Yarn zaczął od rozwiązania niektórych problemów npm. Najbardziej oczywistą różnicą jest wyższa wydajność: dzięki instalacjom przyrostowym, wielowątkowości i najnowszej zabójczej funkcji Plug'n'Play (PNP) wydajność dramatycznie wzrasta. Plug'n'Play odrzuca pomysł opartego na projekcie folderu node_modules, który często może urosnąć do astronomicznych rozmiarów w liczbie plików. Więcej informacji na ten temat można znaleźć w oficjalnym dokumencie dotyczącym Plug'n'Play . Instalujemy eslint raz z npm, a następnie z przędzą z rozgrzaną pamięcią podręczną w każdym przypadku, aby różnica w prędkości była wyraźna (6x!):

