Yarn Plug'n'Play

npm ist der Standardpaketmanager für Node.js. Dabei hat Facebook bereits seit längerem eine alternative Paketverwaltungslösung namens Yarn entwickelt. Yarn scheint aus den Github-Readmes als Standardlösung langsam wieder zu verschwinden und die Stats auf der offiziellen Seite zeigen, dass nur ein Bruchteil der Packages durch Yarn durchgeführt werden. Trotzdem lohnt sich der Blick über den Tellerrand.


Yarn ist vollständig kompatibel zu bestehenden package.json-Dateien – man kann also ohne Probleme die beiden Lösungen für bestehende Projekte benutzen. Die Kommandos der beiden Lösungen unterscheiden sich dabei nur marginal. Anbei folgt eine Gegenüberstellung der wichtigsten Kommandos:

BeschreibungnpmYarn
Initialisieren npm inityarn init
Updatenpm install -g npmyarn self-update
Paket installierennpm install
--save [name]
yarn add [name]
Paket installierennpm install
--save-dev [name]
yarn add
--dev [name]
Paket global installierennpm install -g [name]yarn global add [name]
Alle Pakete installierennpm installyarn install
Alle Pakete aktualisierennpm updateyarn upgrade
Paket deinstallierennpm remove [name]yarn remove [name]

Yarn ist mit dem Ziel angetreten, einige Schwachpunkte von npm zu lösen. Der offensichtlichste Unterschied ist die höhere Performance: Durch inkrementelle Installationen, Multithreading und dem neuesten Killer-Feature Plug'n'Play (PNP) steigt die Performance drastisch an. Plug'n'Play verwirft dabei die Idee eines projektbasierten node_modules-Ordner, der in der Anzahl der Dateien oft in astronomische Höhen wachsen kann. Mehr dazu findet man im offiziellen Whitepaper zu Plug'n'Play. Wir installieren eslint einmal mit npm und dann mit yarn mit jeweils aufgewärmten Cache, um den Unterschied in der Geschwindigkeit (6x!) deutlich zu machen:

npm 6.5.0
Yarn 1.12.3
Zurück