JavaScript: Facebook veröffentlicht Yarn 1.0
Der quelloffenen Paketmanager ist eine Alternative zu npm. Version 1.0 bringt unter anderem einheitliche Workspaces und versucht Merge-Konflikte der Lock-Dateien zu lösen.
![JavaScript: Facebook veröffentlicht Yarn 1.0](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/2/7/5/9/0/6/javascript-2-1d9f37fd69c90a5a.jpeg)
Knapp ein Jahr nach der ersten Vorstellung der npm-Alternative Yarn, hat Facebook nun Version 1.0 veröffentlicht. Damit attestieren die Mache dem JavaScript-Paketmanager eine ausreichende Reife für den produktiven Einsatz. Gleichzeitig bringt das erste Major Release einige Neuerungen mit.
So bietet das Tool nun sogenannte Workspaces, mit denen sich die Abhängigkeiten mehrere package.json-Dateien zusammenfassen lassen, sodass Entwickler sie in einem Rutsch installieren können. Ein gemeinsames yarn.lock kümmert sich um übergreifende Sperren. Yarn verwaltet auch die Beziehungen zwischen den einzelnen Workspaces, die voneinander abhängig sind, damit stets die aktuellsten Varianten der Pakete für das gesamte Projekt zur Verfügung stehen. Einige Facebook-Teams setzen wohl Workspaces bereits ein, und auch der JavaScript-Compiler Babel setzt darauf.
Automatische Konfliktlösung und verschachtelte Abhängigkeiten
Außerdem versucht Yarn neuerdings Merge-Konflikte für yarn.lock-Dateien selbsttätig aufzulösen. Damit müssen Entwickler die Konflikte nicht mehr manuell, sondern im Idealfall schlicht über yarn install auflösen, das eine Lock-Datei ohne Konflikte erstellt.
Das neu eingeführte resolutions-Feld innerhalb einer package.json-Datei ermöglicht die Angabe von Sub-Abhängigkeiten, die das System aktualisieren soll. Der maßgebliche Einsatzzweck dafür ist, wichtige Sicherheitsupdates für Pakete zu installieren, die das Projekt nicht direkt, sondern nur als Abhängigkeit anderer Pakete nutzt.
Motivation und Einsatz
Als Vorzüge von Yarn gegenüber anderen Paketmanagern nennt das Readme auf GitHub unter anderem das Caching für eine bessere Performance und die Möglichkeit des Offline-Betriebs, wenn die Pakete bereits verfügbar sind. Außerdem soll das präzise Lockfile-Format dafür sorgen, dass Anwendungen auf unterschiedlichen Systemen jeweils zuverlässig auf dieselbe Art laufen.
Weitere Details lassen sich der Ankündigung entnehmen. Demnach verwaltet Yarn inzwischen insgesamt drei Milliarden Paket-Downloads monatlich, und 175.000 GitHub-Projekte enthalten eine yarn.lock-Datei. Auch wenn Facebook maßgeblich hinter Yarn steht, existierte eine unabhängige Organisation dafür auf GitHub. Die Ankündigung betont, dass zahlreiche Contributors an dem Open-Source-Projekt beteiligt sind. (rme)