Original-URL des Artikels: https://www.golem.de/news/yarn-facebook-veroeffentlicht-alternative-zu-npm-1610-123759.html    Veröffentlicht: 12.10.2016 09:26    Kurz-URL: https://glm.io/123759

Yarn

Facebook veröffentlicht Alternative zu NPM

Mit Yarn soll die Abhängigkeitsverwaltung von Javascript-Code schneller und sicherer sein als mit dem Werkzeug NPM. Die Quelle der Paketverwaltung NPM, das Registry, kann aber auch mit Yarn von Facebook genutzt werden.

Der Einsatz von Javascript-Code ist bei Facebook so groß, dass das Unternehmen beim Lösen seiner eigenen Probleme schnell an einige praktische Grenzen stößt. Das sei auch bei der Verwendung von NPM geschehen, dem kanonischen Werkzeug zum Verwalten von Node.js-Modulen. Das Team bei Facebook bemängelte die "Konsistenz, Sicherheit und Leistung" von NPM und hat deshalb mit Yarn eine "schnelle, zuverlässige und sichere" Alternative zum NPM-Client erstellt, wie das Unternehmen bekanntgibt.

Wichtig herauszustellen ist dabei, dass Yarn tatsächlich nur als Alternative für das Kommandozeilenwerkzeug NPM gedacht ist. Die von und für NPM gepflegte Datenbank der verfügbaren und nutzbaren Javascript-Module, die sogenannte Registry, soll auch mit Yarn explizit weiterverwendet werden können.

Neustart mit Hilfe von Google und anderen

Facebook habe der Ankündigung zufolge besondere Probleme beim Skalieren mit NPM gehabt. So hätte das Aktualisieren besonders großer Projekte mit vielen Abhängigkeiten wie etwa Babel teilweise einen ganzen Tag gedauert. Der Kniff, sämtliche Abhängigkeiten über das hauseigene CDN zu verteilen, habe zudem erzwungen, dass die Entwickler eine Internetverbindung benötigen, um neuen Code zu erhalten und diesen zu bauen.

Darüber hinaus forciere die Umsetzung der semantischen Versionierung in NPM oft unnötige Aktualisierungen, was wiederum hohen Zeitaufwand verursachen könnte. Facebook habe bei der Erstellung von Yarn bemerkt, dass auch andere Unternehmen wie Google, Exponent oder Tilde ähnliche Probleme und Hacks für deren Lösung eingesetzt haben. Deren Erfahrungen seien ebenso in Yarn eingeflossen.

Abhängigkeitsauflösung und Cache zur Beschleunigung

Bei der Installation neuer Pakete löse Yarn die Abhängigkeiten zunächst auf, indem die Registry rekursiv durchlaufen werde. Das soll eventuell doppelte oder sich selbst überschreibende Installationen von Paketen, wie sie bei NPM vorkommen, verhindern. Ebenso verwende Yarn einen globalen Cache für alle bereits installierten Pakete, so dass ein Paket, das bereits installiert sei und als Abhängigkeit in einem zweiten Projekt benötigt werde, kein zweites Mal heruntergeladen werden müsse.

Die tatsächlich benötigten Pakete werden dann aus dem globalen Cache in das lokale Verzeichnis node_modules kopiert. All das soll zu vorhersagbaren Ergebnissen einer Installation führen. Ebenso sei Yarn in der Lage, Aufgaben parallelisiert abzuarbeiten und dank Mutex sollen sich mehrere laufende Yarn-Instanzen nicht gegenseitig behindern können.

Yarn kann über NPM installiert werden, Pakete für Linux-Distributionen stehen ebenso bereit. Der Code des Werkzeugs steht unter einer freizügigen Lizenz auf Github bereit. Details zu Yarn finden sich auf der Webseite des Projekts. Die Betreiber von NPM begrüßen in einem kurzen Blogeintrag die Offenlegung und Vorstellung von Yarn.  (sg)


Verwandte Artikel:
Rechtsstreit: Blackberry verklagt Facebook wegen Messaging-Patenten   
(07.03.2018, https://glm.io/133189 )
Node.js: Hälfte der NPM-Pakete durch schwache Passwörter verwundbar   
(23.06.2017, https://glm.io/128552 )
Open Source: Node.js-Foundation könnte Projektführung ändern   
(25.08.2017, https://glm.io/129683 )
Monero: Werbeanzeigen mit verstecktem Kryptomining auch auf Youtube   
(29.01.2018, https://glm.io/132449 )
HSTS: Facebook verschlüsselt alle ausgehenden Links, wenn möglich   
(06.03.2018, https://glm.io/133157 )

© 1997–2020 Golem.de, https://www.golem.de/