npm är standardpakethanteraren för Node.js. Facebook har länge utvecklat en alternativ lösning för pakethantering som heter Yarn . Garn verkar långsamt försvinna från Github readmes som standardlösning och statistiken på den officiella webbplatsen visar att endast en bråkdel av förpackningarna utförs av garn. Ändå är det värt att tänka utanför lådan.
Garn är helt kompatibelt med befintliga package.json-filer - så att du kan använda båda lösningarna för befintliga projekt utan problem. Kommandona för de två lösningarna skiljer sig bara marginellt. Här är en jämförelse av de viktigaste kommandona:
Beskrivning | npm | Garn |
Initiera | npm init | garn init |
Uppdatering | npm installera -g npm | garn självuppdatering |
Installera paketet | npm installera - spara [namn] | garn lägg till [namn] |
Installera paketet | npm installera --save-dev [namn] | garn lägg till --dev [namn] |
Installera paketet globalt | npm installera -g [namn] | garn globalt lägg till [namn] |
Installera alla paket | npm installera | garninstallation |
Uppdatera alla paket | npm-uppdatering | garnuppgradering |
Avinstallera paketet | npm ta bort [namn] | garn ta bort [namn] |
Garn började med målet att lösa några av svagheterna i npm. Den mest uppenbara skillnaden är den högre prestandan: Genom inkrementella installationer, multithreading och den senaste killer-funktionen Plug'n'Play (PNP) ökar prestandan dramatiskt. Plug'n'Play förkastar idén med en projektbaserad mapp med nod_moduler, antalet filer som ofta kan växa till astronomiska höjder . Mer information finns i den officiella plug'n'play whitepaper. Vi installerar eslint en gång med npm och sedan med garn med cache uppvärmd i varje fall för att göra skillnaden i hastighet (6x!) Rensa: