npm is de standaard pakketbeheerder voor Node.js. Facebook heeft al lang een alternatieve oplossing voor pakketbeheer ontwikkeld, genaamd Yarn . Garen lijkt langzaam te verdwijnen uit de Github readmes als de standaardoplossing en de statistieken op de officiële site laten zien dat slechts een fractie van de pakketten door Yarn wordt uitgevoerd. Toch is het de moeite waard om buiten de kaders te denken.
Garen is volledig compatibel met bestaande package.json-bestanden - dus u kunt beide oplossingen probleemloos voor bestaande projecten gebruiken. De commando's van de twee oplossingen verschillen slechts marginaal. Hier is een vergelijking van de belangrijkste commando's:
Omschrijving | npm | Garen |
Initialiseer | npm init | garen init |
Bijwerken | npm install -g npm | garen zelf-update |
Installeer pakket | npm installeren --sla [naam] | garen toevoegen [naam] |
Installeer pakket | npm installeren --save-dev [naam] | garen toevoegen --dev [naam] |
Installeer het pakket wereldwijd | npm install -g [naam] | garen globaal toevoegen [naam] |
Installeer alle pakketten | npm installeren | garen installeren |
Werk alle pakketten bij | npm-update | garen upgrade |
Verwijder het pakket | npm verwijder [naam] | garen verwijderen [naam] |
Garen begon met het doel een aantal zwakke punten van npm op te lossen. Het meest voor de hand liggende verschil zijn de hogere prestaties: door incrementele installaties, multithreading en de nieuwste geweldige functie Plug'n'Play (PNP) nemen de prestaties drastisch toe. Plug'n'Play negeert het idee van een projectgebaseerde node_modules-map, het aantal bestanden dat vaak tot astronomische hoogten kan groeien. Meer informatie is te vinden in de officiële plug'n'play whitepaper. We installeren eslint eenmaal met npm en vervolgens met garen waarbij de cache telkens is opgewarmd om het verschil in snelheid te maken (6x!).: