npm er standardpakkehåndteringen for Node.js. Facebook har længe udviklet en alternativ pakkehåndteringsløsning kaldet Yarn . Garn ser ud til langsomt at forsvinde fra GitHub readmes som standardløsningen, og statistikken på det officielle websted viser, at kun en brøkdel af pakkeinstallationerne udføres med Yarn. Ikke desto mindre er det værd at kigge uden for boksen.
Yarn er fuldt kompatibel med eksisterende package.json-filer, så du nemt kan bruge begge løsninger i eksisterende projekter. Kommandoerne for de to løsninger adskiller sig kun en smule. Nedenfor er en sammenligning af de vigtigste kommandoer.:
| Beskrivelse | npm | Garn |
| Initialiser | npm init | garn init |
| Opdatering | npm installer -g npm | garn selvopdatering |
| Installer pakke | npm installation - gem [navn] | garn tilføj [navn] |
| Installer pakke | npm installation --save-dev [navn] | garn tilføj --dev [navn] |
| Installer pakken globalt | npm installation -g [navn] | garn global tilføj [navn] |
| Installer alle pakker | npm installation | garninstallation |
| Opdater alle pakker | npm opdatering | garnopgradering |
| Afinstaller pakke | npm fjern [navn] | garn fjern [navn] |
Garn startede med det mål at løse nogle af npms smertepunkter. Den mest åbenlyse forskel er den højere ydeevne: Gennem inkrementelle installationer, multithreading og den nyeste dræberfunktion Plug'n'Play (PNP) øges ydeevnen dramatisk. Plug'n'Play afviser ideen om en projektbaseret node_modules-mappe, som ofte kan vokse til astronomiske højder i antallet af filer. Du kan finde ud af mere om dette i den officielle Plug'n'Play hvidbog . Vi installerer eslint én gang med npm og derefter med garn med cachen opvarmet i hvert tilfælde for at gøre forskellen i hastighed tydelig (6x!):

