Az npm a Node.js alapértelmezett csomagkezelője. A Facebook már régóta fejleszt egy alternatív csomagkezelési megoldást Yarn néven. Úgy tűnik, hogy a Yarn lassan eltűnik a GitHub readmes-ből, mivel az alapértelmezett megoldás, és a hivatalos webhely statisztikái azt mutatják, hogy a csomagtelepítések csak töredéke történik Yarn segítségével. Ennek ellenére érdemes a dobozon kívülre nézni.
A Yarn teljes mértékben kompatibilis a meglévő package.json fájlokkal, így mindkét megoldást könnyedén használhatod a meglévő projektekben. A két megoldás parancsai csak kismértékben különböznek egymástól. Az alábbiakban a legfontosabb parancsok összehasonlítását láthatjuk.:
| Leírás | npm | Fonal |
| Inicializálás | npm init | fonal init |
| Frissítés | npm telepítés -g npm | fonal önálló frissítése |
| Telepítse a csomagot | npm telepítés --save [név] | fonal hozzáadása [név] |
| Telepítse a csomagot | npm telepítés --save-dev [név] | fonal hozzá --dev [név] |
| Telepítse a csomagot globálisan | npm telepítés -g [név] | fonal globális hozzáadás [név] |
| Telepítse az összes csomagot | npm telepítés | fonal telepítése |
| Frissítse az összes csomagot | npm frissítés | fonalfrissítés |
| Csomag eltávolítása | npm [név] eltávolítása | fonal eltávolítás [név] |
A fonal azzal a céllal indult, hogy megoldja az npm néhány fájdalompontját. A legnyilvánvalóbb különbség a nagyobb teljesítményben rejlik: a fokozatos telepítések, a többszálú megoldás és a legújabb gyilkos Plug'n'Play (PNP) funkció révén a teljesítmény drámaian megnő. A Plug'n'Play elutasítja a projektalapú node_modules mappa ötletét, amely gyakran csillagászati magasságokba nőhet a fájlok számában. Erről többet megtudhat a hivatalos Plug'n'Play fehér könyvben . Az eslint egyszer npm-mel, majd a gyorsítótárat minden esetben felmelegített fonallal telepítjük, hogy egyértelmű legyen a sebességkülönbség (6x!):

