News

Yarn 2 kommt mit interessanten neuen Features

(Bild: Noam Armonn/Shutterstock)

 Am Freitag wurde Yarn 2 gelauncht! Was der Major Release alles mitbringt und ob das Upgrade für euch in Frage kommt, lest ihr hier.

Yarn, der rückwärtskompatible Client für das npm-Paketregister aus den Software-Schmieden von Facebook, Google, Exponent und Tilde wurde 2016 quelloffen und wird seither von einem beträchtlichen Teil der JavaScript-Community genutzt. Vor einem Jahr gab Mael Nison, Lead-Maintainer des Projekts, bekannt, an einer 2. Version zu arbeiten. Der Nachfolger der beliebten npm-Alternative wurde am Freitag, genau ein Jahr nach der Ankündigung gelauncht und kommt mit einigen Veränderungen, sowie einer Menge neuer Features daher.

Der CLI-Output

Die CLI-Outputs in Yarn 2 wurden gründlich überarbeitet. Statt kryptischer Fehlermeldungen bekommt ihr Messages mit Error Codes, nach denen ihr in der Doku suchen könnt. Dort findet ihr Erklärungen inklusive Lösungsvorschlägen dazu. Außerdem wurde die Farbgebung der Fehlermeldungen überarbeitet.

Behaltet den Überblick über eure Workspaces

Mit Yarn 2 könnt ihr über yarn up <name> ein Package in allen Workspaces eines Projekts gleichzeitig updaten, yarn add -i <name> lässt euch im gegenwärtigen Workspace die selbe Version einer Dependency zu nutzen, die ihr in den anderen nutzt. Und: Das Version-Plugin bietet einen Weg, um alle Referenzen zu verknüpften Workspaces automatisch zu updaten – in Yarn 1 musste das für jeden Server und jeden Client manuell gemacht werden.

Den Überblick über Änderungen in euren Workspaces und Releases behaltet ihr in Yarn 2 mithilfe des version-plugins, das euch erlaubt, Release-Verantwortlichkeiten an Contributors zu delegieren. Fancy: Das Plugin hat außerdem ein visuelles Interface, das das Workspace-Management vereinfacht.

Achtung: Noch befindet sich die Funktionalität im sogenannten Experimental Mode.

Neue Commands

Yarn 2 hat zwei neue Commands im Gepäck. Erstens ist da yarn dlx – quasi das  Äquivalent zu npx. Yarn dlx ist dabei sicherer, da es – anders als npx – ausschließlich Remote Scripts lädt und ausführt. Lokale Scripts lassen sich separat über yarn run oder einfach über ihren Namen ausführen.

Hinzu kommt yarn workspaces foreach. In Yarn 1 braucht ihr ein externes Tool, um einen Command über mehrere Repos auszuführen. Yarn 2 bringt nun ein Plugin namens workspace-tools mit, das neben eben dieser Funktionalität außerdem Möglichkeiten bietet, Commands parallel auszuführen, Dependencies zu folgen oder Workspaces zu skippen.

Neue Protokolle – patch: und portal:

Mit patch: nehmt ihr spezifische Änderungen an Packages innerhalb des Dependency-Trees vor. In Kombination mit dem Resolutions-Field lassen sich auch Pakete patchen, die irgendwo tief im Dependency-Tree verschachtelt sind.

Das portal:-Protokoll ist quasi das Gegenstück zum link:-Protokoll. Das link:-Protokoll könnt ihr nutzen, um Symlinks zu lokalen Ordnern zu erstellen, mit portal: erstellt ihr in Yarn 2 Symlinks zu allen Package-Foldern. Der Unterschied: Portale folgen transitiven Dependencies, Links nicht.

Workspace Contraints

Auch wenn Workspaces ein tolles Feature von Yarn sind – die Aufrechterhaltung synchronisierter Workspace Dependencies ist aufwändig. Yarn 2 kommt mit einem neuen Konzept namens Constraints. Damit könnt ihr allgemein gültige Regeln für eure Workspaces erstellen – mithilfe von Prolog, einer Programmiersprache aus den 70er-Jahren. Klingt kompliziert? – Ist es wohl auch. Im Blogpost auf dev.to kündigte Nison bereits an, dass er dazu in Kürze weitere Infos veröffentlichen wolle.

Genauere Kontrolle über eure Dependencies

In Yarn 2 werden eure Build-Dependencies getrackt. Außerdem könnt ihr Builds für einzelne Packages ermöglichen.

Verbesserte Windows-Shell-Kompatibilität

Windows-Nutzer hatten in der Vergangenheit öfter Probleme mit dem scripts-field. Für bessere Kompatibilität mit allen Betriebssystemen kommt Yarn 2 mit einem rudimentären Shell-Interpreter. Der soll sicherstellen, dass eure Scripts richtig ausgeführt werden, egal auf welchem OS.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung