JavaScript: Facebook veröffentlicht npm-Alternative Yarn

Der Open-Source-Paketmanager entstand in Zusammenarbeit mit Google, Exponent und Tilde. Durch Caching funktioniert er auch offline, wenn die benötigten Pakete bereits existieren. Yarn arbeitet mit der Registry von npm und Bower.

In Pocket speichern vorlesen Druckansicht 57 Kommentare lesen
JavaScript: Facebook veröffentlicht npm-Alternative Yarn
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Für JavaScript-Entwickler gehört die Verwendung fremder Pakete zum Arbeitsalltag. Bei der Wiederverwendung entstehen Abhängigkeiten, um die sich Paketmanager wie npm kümmern, den Node.js standardmäßig verwendet. Facebook hat nun einen Alternative dazu als Open-Source-Projekt veröffentlicht: Yarn entstand in Zusammenarbeit mit Exponent, Google und der Entwicklerfirma Tilde.

Der Paketmanager verwendet keine eigene Infrastruktur, sondern kann die Registry von npm oder auch des für Frontend-Anwendungen optimierten Bower verwenden. Es bringt jedoch einen eigenen Workflow, der an den der anderen Paketmanager angelehnt ist. Zusätzlich ist er auf Performance, Zuverlässigkeit und Sicherheit optimiert.

Als Vorzug preist der Blogbeitrag die Art, wie Yarn Abhängigkeiten verwaltet. Es vermeidet Inkonsistenzen, die im node_modules-Verzeichnis von npm entstehen können. Dessen Baum fasst doppelte Abhängigkeiten zusammen, sodass sie je nach der installierten Reihenfolge unterschiedlich ausfallen können. Das kann wiederum dazu führen, dass ein bestimmtes Modul in einer Konfiguration funktioniert, während es in einer anderen scheitert. Yarn überprüft die Abhängigkeit rekursiv und legt sie für bestimmte Versionen kompakt formatiert in einem Lockfile ab.

Ein Cache speichert bereits heruntergeladene Pakete und lädt nur die neuen oder veränderten als Tarball herunter. Das beschleunigt die Performance und vermeidet unnötigen Netzwerkverkehr. Außerdem können Entwickler Yarn auch offline verwenden, wenn die benötigten Pakete bereits existieren. Für eine bessere Netzwerkperformance fasst Yarn zudem mehrere Anfragen zusammen. Fehlgeschlagene Anfragen quittiert Yarn nicht mit einem Abbruch der Installation, sondern wiederholt sie.

Weitere Details stehen im Blogbeitrag. Facebook verwendet Yarn demnach seit geraumer Zeit intern für zahlreiche JavaScript-Projekte. Der Standardweg zur Installation ist übrigens der Einsatz von npm: npm install -g yarn. Auch wenn die Macher die zahlreichen Vorzüge gegenüber dem Platzhirsch ins Feld führen, nennt das GitHub-Repository, in dem auch der Sourcecode verfügbar ist, vier "vorherige Kunstwerke", ohne die Yarn nicht existieren würde: Bundler für Ruby, Cargo für Rust sowie npm und ied für JavaScript beziehungsweise Node.js. (rme)