Yarn ist einer der wichtigsten JavaScript- Paketmanager [ 3 ] [ 4 ] und wurde 2016 von Sebastian McKenzie von Meta (ehemals Facebook) für die JavaScript- Laufzeitumgebung Node.js entwickelt. Als Alternative zum Paketmanager npm entstand Yarn in Zusammenarbeit von Facebook (jetzt Meta), Exponent (jetzt Expo.dev), Google und Tilde (dem Unternehmen hinter Ember.js ), um Probleme mit Konsistenz, Sicherheit und Leistung bei großen Codebasen zu lösen. [ 5 ]
Obwohl das Projekt von Technologieunternehmen finanziert wurde, war es von Anfang an als eigene GitHub-Organisation konzipiert und wurde schließlich 2019 vollständig autonom, nachdem der Hauptentwickler Facebook verlassen hatte, um zu Datadog zu wechseln .
Yarn 2 & Yarn Plug'n'Play
Im Jahr 2020 veröffentlichte das Yarn-Team ein umfangreiches Update, Yarn 2.0, auch bekannt als „Berry“. [ 6 ] Diese Version beinhaltete eine vollständige Überarbeitung sowohl der Quellcodebasis (die dabei auf TypeScript umgestellt wurde) als auch der Testsuite. Zahlreiche neue Funktionen wurden eingeführt, darunter die herausragende neue Installationsstrategie Yarn Plug’n’Play.
In diesem standardmäßigen, aber optionalen Modus generierte Yarn keinen node_modulesOrdner mehr, sondern stattdessen eine einzelne Node.js-Resolverdatei mit dem Namen .pnp.cjs. [ 7 ] Obwohl das Yarn-Team dies mit der Notwendigkeit begründete, mehrere Designfehler in der typischen Node.js-Modulauflösung zu beheben, erforderte diese Änderung die Unterstützung anderer Projekte im Ökosystem, deren Umsetzung einige Zeit in Anspruch nahm und die Migration von Yarn 1.22 zu Yarn 2.0 erschwerte.
Plugins
Benutzer können ihre eigenen Plugins für Yarn schreiben.
Einschränkungen
Mit Yarn-Constraints können Benutzer Regeln für ihre Abhängigkeiten oder Manifestfelder über verschiedene Arbeitsbereiche hinweg durchsetzen.
Offline-Cache
Heruntergeladene Pakete werden zwischengespeichert und als eine einzige Datei gespeichert.
Plug'n'Play
Plug'n'Play ermöglicht es Benutzern, Node-Projekte ohne Ordnerstruktur auszuführen node_modules, indem sie mithilfe der Plug-n-Play-Steuerungsdatei festlegen, wie und wo Abhängigkeitspaketdateien aufgelöst werden. Diese Funktion zielt darauf ab, eine unstrukturierte node_modulesArchitektur zu korrigieren und so die Startzeit von Node.js-Anwendungen zu verkürzen.
Plugins
Plugins können neue Resolver, Fetcher, Linker und Befehle hinzufügen und sich auch für bestimmte Ereignisse registrieren oder untereinander integriert werden. Die meisten Funktionen von Yarn werden über Plugins implementiert, darunter auch yarn addund yarn install, die ebenfalls vorinstallierte Plugins sind.
Protokolle
Benutzer können festlegen, welches Protokoll zum Auflösen bestimmter Pakete verwendet wird. Beispielsweise wird das Git- Protokoll zum Herunterladen eines öffentlichen Pakets aus einem Git-Repository verwendet, und das Patch- Protokoll wird zum Erstellen einer gepatchten Kopie des Originalpakets verwendet.
Release-Workflow
Der Release-Workflow aktualisiert automatisch die zugehörigen Pakete in den Monorepo- Arbeitsbereichen, wenn die Stammpakete aktualisiert werden.
Arbeitsbereiche
Workspaces ermöglichen es, mehrere Projekte im selben Repository zu bearbeiten und Änderungen automatisch auf andere verwandte Projekte anzuwenden, wenn der Quellcode geändert wird. Dadurch können mehrere Pakete in einem einzigen Durchgang installiert werden, indem der Installationsbefehl nur einmal ausgeführt wird.
Installationsfrei
Zero-Installs lösen das Problem der Paketinstallation, wenn Pakete installiert werden müssen, nachdem der Code gerade erst lokal abgerufen wurde.
Vergleich mit npm
- Yarn kann Pakete aus dem lokalen Cache installieren. [ 8 ]
- Yarn bindet verschiedene Versionen des Pakets eng.
- Yarn verwendet Prüfsummen, um die Datenintegrität zu gewährleisten, während npm SHA-512 verwendet, um die Datenintegrität der heruntergeladenen Pakete zu überprüfen. [ 9 ]
- Yarn installiert Pakete parallel, während npm jeweils nur ein Paket installiert.
Syntax
So installieren Sie Yarn:
npm install -g yarn
So installieren Sie ein Paket mit yarn: [ 10 ]
yarn add Paketname
So installieren Sie ein Paket mit Yarn für Entwicklungs- und Testzwecke:
yarn add Paketname -dev
Anmerkung: In den ersten Versionen lautete die Angabe:
yarn install Paketname --save-dev
Siehe auch
Referenzen
- ^ „Früheste Versionen von Yarn“ . GitHub . Abgerufen am 18. Juni 2016 .
- ^ „Version 4.17.0“ . 15. Juni 2026. Abgerufen am 15. Juni 2026 .
- ^ „Grundlagen der Paketverwaltung“ . MDN . 2022-09-28.
- ^ „5 beste JavaScript-Paketmanager“ . Dunebook.com . 05.02.2022.
- ^ „Yarn: Ein neuer Paketmanager für JavaScript“ . Engineering bei Meta . 11.10.2016 . Abgerufen am 22.11.2021 .
- ^ „Wir stellen Yarn 2 vor! 🧶🌟“ . Entwickler-Community . 24.01.2020 . Abgerufen am 09.01.2025 .
- ^ „Plug’n’Play | Yarn“ . yarnpkg.com . Abgerufen am 9. Januar 2025 .
- ^ „Paketmanager – NPM und Yarn erklärt anhand von Beispielen“ . Sitepoint . 21.09.2021.
- ^ „Anleitung zur Installation und Verwendung des Yarn-Paketmanagers für Node.js“ . DigitalOcean . 10.08.2021.
- ^ „Yarn vs npm: Alles, was Sie wissen müssen“ . CodeSweetly . 04.02.2023.