- Yarn verwendet ein zweistufiges Modell: eine globale CLI plus eine projektgebundene Version für ein konsistentes Verhalten.
- Deterministische Installationen mit yarn.lock und aggressivem Caching ermöglichen ein schnelles und reproduzierbares Abhängigkeitsmanagement.
- Modern Yarn Berry erweitert Yarn um PnP, Workspaces und .yarnrc.yml für flexible Verknüpfung, Caching und Editor-/CI-Integration.
- Eine korrekte PATH-Konfiguration, die Handhabung von Sperrdateien und das Cache-Management sind unerlässlich, um häufige Installationsprobleme zu vermeiden.

Wenn Sie versuchen, Yarn für Ihre JavaScript-Projekte zu installieren und sich angesichts der vielen Optionen etwas verloren fühlen, sind Sie nicht allein. Yarn hat sich in den letzten Jahren stark weiterentwickelt, es existiert parallel zu npm, und es gibt verschiedene Versionen und Installationsabläufe, abhängig vom Betriebssystem und sogar vom verwendeten Projektstil (Monorepo, PnP, klassisches node_modules usw.).
Die gute Nachricht ist: Sobald man verstanden hat, wie Yarn installiert wird und wie sein zweistufiges Modell (globale CLI + projektspezifisches Yarn) funktioniert, ergibt alles Sinn. In diesem Leitfaden zeigen wir Ihnen detailliert, wie Sie Yarn auf den gängigsten Systemen installieren, wie Sie es in ein reales JavaScript-Projekt einbinden, was es von npm unterscheidet und wie Sie typische Probleme beheben, die üblicherweise bei der ersten Verwendung auftreten.
Was Yarn ist und warum es für JavaScript-Projekte immer noch wichtig ist
Yarn ist ein Paketmanager für Node.js, der mit drei großen Zielen entwickelt wurde: Geschwindigkeit, Sicherheit und deterministische Installationen. Es entstand als Alternative zu npm zu einer Zeit, als npm mit Leistungs- und Zuverlässigkeitsproblemen zu kämpfen hatte, und obwohl sich npm seitdem stark verbessert hat, ist Yarn nach wie vor äußerst beliebt, insbesondere im Umfeld von React und modernen Frontend-Stacks.
Eine der Hauptstärken von Yarn ist sein deterministischer Installationsprozess, der auf Folgendem basiert: yarn.lock Datei. Diese Datei legt die genauen Versionen aller direkten und transitiven Abhängigkeiten fest, sodass die Installation auf verschiedenen Rechnern oder CI-Servern immer zum gleichen Abhängigkeitsbaum führt und das klassische Problem „Es funktioniert nur auf meinem Laptop“ beseitigt wird.
Ein weiteres charakteristisches Merkmal ist das aggressive Caching-Verhalten, das es Yarn ermöglicht, bereits heruntergeladene Pakete wiederzuverwenden. Dank dieser Funktion werden wiederholte Installationen deutlich beschleunigt, und Yarn kann sogar im Offline-Modus funktionieren, wenn alle erforderlichen Pakete zuvor zwischengespeichert wurden.
Modern Yarn (oft auch „Berry“ genannt, für die Versionen 2.x, 3.x und 4.x) bietet zusätzliche Funktionen wie Plug'n'Play (PnP) und Arbeitsbereiche. PnP kann die traditionellen node_modules Der Ordner wird durch Manifestdateien ersetzt, die Node.js genau mitteilen, wo sich jedes Paket befindet. Dadurch wird viel Speicherplatz gespart und einige Operationen beschleunigt. Arbeitsbereiche hingegen eignen sich perfekt für Monorepos, da sie mehrere Pakete in einem einzigen Repository mit einer gemeinsamen Sperrdatei und zentraler Abhängigkeitsverwaltung verknüpfen.
Aus Sicherheitssicht überprüft Yarn vor der Ausführung jedes Pakets dessen Prüfsummen. Diese Integritätsprüfung bietet eine zusätzliche Schutzebene gegen beschädigte oder manipulierte Artefakte, was insbesondere in Unternehmensumgebungen oder sensiblen Bereichen von Vorteil ist.
Yarn Classic vs. Yarn Berry (Modern Yarn) verstehen

Bevor wir über die Installation sprechen, ist es wichtig zu verstehen, dass es zwei große Familien von Yarn gibt: Classic (1.x) und Berry (2.x/3.x/4.x). Yarn Classic befindet sich in einem eigenen historischen Repository und erhält lediglich Sicherheitsupdates, während sich die gesamte aktive Entwicklung auf die neuere Berry-Linie konzentriert, die im yarnpkg/berry Repo.
Yarn Classic (etwa Version 1.22) ist die Version, die die meisten Benutzer immer noch erhalten, wenn sie die globale Version installieren. yarn CLI mit npm. Die globale CLI fungiert heutzutage hauptsächlich als Launcher: Innerhalb eines mit Berry konfigurierten Projekts delegiert der globale Befehl die Ausführung einfach an die lokale projektspezifische Yarn-Version, sodass Sie die Projekt-Toolchain aktualisieren können, ohne die globalen Tools zu berühren.
Yarn Berry führt tiefgreifende architektonische Änderungen ein, allen voran Plug'n'Play und ein leistungsstarkes Plugin-System. Standardmäßig bevorzugt Berry PnP gegenüber node_modules, unterstützt Zero-Install-Workflows (Abhängigkeiten werden im Repository gespeichert) und ermöglicht eine detaillierte Konfiguration durch .yarnrc.ymleinschließlich der Art und Weise, wie Module verknüpft werden, wie Caches verwaltet werden oder wie Registries und Proxys definiert werden.
Die Entwickler von Yarn selbst empfehlen dringend, wann immer möglich von Version 1.x auf die neueste Berry-Version zu migrieren. Modernere Versionen werden seit längerer Zeit aktiv gepflegt, beheben ganze Problemklassen, die in Classic vorhanden waren, und bieten Konfigurationsflexibilität durch die nodeLinker Einstellung, damit Sie weiterhin die klassische node_modules Layout oder Symlinks im PnPM-Stil, wenn PnP nicht geeignet ist.
Sollte Ihr Ökosystem oder Ihre Tools noch nicht für PnP bereit sein, ist das kein Grund zur Panik. Durch einfaches Einstellen nodeLinker: node-modules in .yarnrc.ymlBerry verhält sich eher wie herkömmliche npm-Installationen und behält dabei seine deterministische Sperrdatei, sein Caching-Verhalten und die verbesserte CLI-Benutzererfahrung bei.
Systemanforderungen und globale Garninstallationsstrategie
Unabhängig vom Betriebssystem ist die zwingende Voraussetzung für Yarn die Installation von Node.js. Yarn ist eine Node-basierte Befehlszeilenschnittstelle und benötigt Node.js, um zu funktionieren. Daher sollten Sie zunächst mit einem kurzen Befehl überprüfen, ob Node.js verfügbar ist. node -v Geben Sie in Ihrem Terminal eine Versionsnummer anstelle der Fehlermeldung „Befehl nicht gefunden“ ein. Dann können Sie fortfahren.
Falls Node.js fehlt oder veraltet ist, installieren oder aktualisieren Sie es mit der für Ihre Plattform empfohlenen Methode. Unter Linux können Sie Distributionspakete oder NodeSource-Repositories verwenden, unter macOS bevorzugen Sie möglicherweise Homebrew, MacPorts oder nvm, und unter Windows den offiziellen Installer oder einen Paketmanager wie Chocolatey oder Scoop. Viele Yarn-Workflows setzen mindestens Node 14.18 voraus, und für Berry ist Node 16 oder 18 LTS in der Regel optimal.
Die Autoren von Yarn empfehlen ein zweistufiges Installationsmodell. Installieren Sie zunächst eine globale yarn Einmalig per CLI (meist über npm) konfigurieren und anschließend in jedem Projekt mit demselben globalen Befehl eine projektspezifische Yarn-Version direkt im Repository festlegen. Dadurch wird sichergestellt, dass alle Mitwirkenden und CI-Jobs exakt dieselbe, vom Projekt definierte Yarn-Version verwenden.
Die Installation der globalen Yarn CLI über npm ist unkompliziert. Da npm standardmäßig mit Node.js ausgeliefert wird, können Sie Folgendes ausführen:
sudo npm install -g yarn
Sobald die Installation abgeschlossen ist, überprüfen Sie, ob die globale CLI erreichbar ist. Run:
yarn --version
Wenn Sie etwas sehen wie 1.22.xDas bedeutet, dass der globale Classic Launcher ordnungsgemäß funktioniert. Ab jetzt übergibt dieser globale Befehl beim Einstieg in ein Projekt, das Berry verwendet, die Kontrolle transparent an die lokal konfigurierte Yarn-Version, die im Repository gespeichert ist.
Installation von Yarn in einem bestimmten JavaScript-Projekt
Nachdem die globale CLI bereit ist, besteht der nächste Schritt darin, jedem Projekt eine bestimmte Yarn-Version zuzuweisen. Genau das gewährleistet die Konsistenz auf den Rechnern Ihrer Teammitglieder und in Ihren CI/CD-Pipelines: Jeder verwendet die gleiche Yarn-Binärdatei und weist daher das gleiche Verhalten auf.
Beginnen Sie, indem Sie zum Verzeichnis Ihres Projekts navigieren (oder erstellen Sie ein neues, wenn Sie eine neue Anwendung entwickeln). Beispielsweise:
mkdir my-project
cd my-project
Verwenden Sie innerhalb dieses Ordners die spezielle yarn set version Befehl zur Auswahl einer aktuellen Berry-Version. Eine typische Vorgehensweise ist es, die aktiv entwickelte „Beeren“-Linie zu verfolgen:
yarn set version berry
Im Hintergrund löst Yarn „berry“ in die neueste Berry-Binärdatei auf, lädt sie herunter und speichert sie in einem .yarn/releases Verzeichnis in Ihrem Projekt. Gleichzeitig erstellt oder aktualisiert es ein .yarnrc.yml Eine Datei im Projektverzeichnis, die dem globalen Launcher mitteilt, dass er diese lokale Binärdatei verwenden soll.
Wenn du jetzt rennst yarn --version Wenn Sie sich wieder innerhalb des Projekts befinden, ändert sich die Ausgabe zur projektfestgelegten Version. Sie könnten beispielsweise Folgendes sehen: 4.5.0 oder eine andere 3.x/4.x-Version, was darauf hinweist, dass Sie nicht mehr die globale Classic CLI verwenden, sondern die lokale Berry-CLI, die in Ihrem Repository gehostet wird.
Ab diesem Zeitpunkt wird jeder Yarn-Befehl, der in diesem Verzeichnis (oder seinen Unterverzeichnissen) ausgeführt wird, die projektspezifische Yarn-Version verwenden. Dies ermöglicht es einem Team, verschiedene Projekte schrittweise und in eigenem Tempo auf neuere Yarn-Versionen zu migrieren, während gleichzeitig ein einziger globaler Launcher auf den Entwicklerrechnern installiert bleibt.
Grundlegende Garnbefehle für die tägliche Entwicklung
Sobald Yarn installiert und in Ihr Projekt eingebunden ist, benötigen Sie nur noch eine kleine Auswahl an Befehlen, um die meisten alltäglichen Aufgaben abzudecken. Die CLI ist umfangreich, aber schon eine Handvoll Unterbefehle reichen aus, um Abhängigkeiten und Skripte zu verwalten.
Wenn Sie einmal nicht weiterkommen oder weitere Optionen erkunden möchten, kann jeder Befehl mit einem Hilfeparameter versehen werden. Laufen:
yarn --help
Druckt allgemeine Hilfe aus, während angehängt wird --help Nach einem bestimmten Unterbefehl erhalten Sie kontextbezogene Anwendungstipps. Zum Beispiel, yarn install --help erklärt alle verfügbaren Flags für den Abhängigkeitsinstallationsprozess.
Um ein brandneues Projekt zu starten, können Sie Yarn anweisen, die grundlegenden Konfigurationsdateien zu generieren. Führen Sie in einem leeren Ordner einfach Folgendes aus:
yarn init
Dieser Befehl führt Sie durch einige Eingabeaufforderungen und schreibt eine package.json plus ein yarn.lock Datei. Ersteres deklariert Ihre Projektmetadaten, Skripte und Abhängigkeiten, während letzteres als kanonischer Datensatz der exakten Versionen dient, die Yarn zum Zeitpunkt der Installation aufgelöst hat.
Beim Beitritt zu einem bestehenden Repository, das bereits Yarn verwendet, besteht der typische erste Schritt darin, alle Abhängigkeiten zu installieren. Im Projektverzeichnis führen Sie einfach Folgendes aus:
yarn install
Yarn liest dann package.json , yarn.locklädt alles herunter, was fehlt, und richtet den Abhängigkeitsbaum ein. Dank der Zwischenspeicherung werden nachfolgende Installationen, selbst auf CI-Systemen, wesentlich schneller vonstattengehen als die erste Installation.
Das Hinzufügen neuer Abhängigkeiten ist mit dem add Unterbefehl. Um beispielsweise Express zu installieren, würden Sie Folgendes verwenden:
yarn add express
Dieser einzelne Befehl lädt das Paket herunter und aktualisiert es. package.json und erfrischt yarn.lock. Sie müssen keine JSON-Dateien manuell bearbeiten; Yarn hält deklarierte Bereiche und gesperrte Versionen für Sie synchron.
Kurzer Funktionstest: Kleiner Express-Server mit Garn
Wenn Sie ganz sichergehen wollen, dass Yarn wie gewünscht funktioniert, können Sie mit Express einen kleinen Funktionstest schreiben. Angenommen, Sie befinden sich innerhalb eines Projekts und haben bereits ausgeführt yarn add express, erstellen Sie eine Datei mit dem Namen index.js mit folgendem minimalen Server:
const express = require("express");
const app = express();
app.get("/", (req, res) => res.send("Yarn is working!"));
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
Anstatt Node direkt aufzurufen, können Sie dieses Skript über Yarn ausführen, was in PnP-Umgebungen praktisch sein kann. Anwendung:
yarn node index.js
Öffnen Sie ein weiteres Terminal und überprüfen Sie, ob der Server korrekt antwortet. Ganz einfach:
curl http://localhost:3000
sollte die Meldung „Yarn is working!“ zurückgeben. Wenn das passiert, wissen Sie, dass Yarn die Abhängigkeit aufgelöst, die Modulauflösung eingerichtet und das Skript problemlos ausgeführt hat.
Verwaltung von Abhängigkeiten, Skripten und dem Yarn-Cache
Über die Installation und grundlegende Erweiterungen hinaus bietet Yarn verschiedene Hilfsprogramme, um Ihren Abhängigkeitsgraphen sauber zu pflegen und weiterzuentwickeln. Diese Befehle vermeiden manuelle Bearbeitung und behalten package.json , yarn.lock stets konsequent.
Um eine Abhängigkeit zu entfernen, die Sie nicht mehr benötigen, verwenden Sie die remove Unterbefehl. Beispielsweise:
yarn remove package-name
Yarn wird das Paket deinstallieren und es entfernen. package.jsonund aktualisieren Sie die Sperrdatei entsprechend. Dadurch wird verhindert, dass veraltete oder ungenutzte Module im Abhängigkeitsbaum verbleiben.
Die Aktualisierung von Abhängigkeiten kann entweder gesammelt oder für ein bestimmtes Paket erfolgen. Ohne Argumente,
yarn upgrade
löst kompatible neuere Versionen gemäß Ihren angegebenen Bereichen auf, während:
yarn upgrade package-name
zielt auf eine einzelne Abhängigkeit ab. In beiden Fällen überschreibt Yarn die Datei. yarn.lock um den aktualisierten Abhängigkeitsgraphen widerzuspiegeln.
Wenn Ihr Projekt Skripte definiert in package.json, Garn run Unterbefehle sind die Methode, um sie auszuführen. Ein Skript wie:
"scripts": {
"start": "node index.js"
}
kann gestartet werden mit:
yarn run start
und in vielen Fällen die kürzere yarn start Alias funktioniert auch. Dies bietet eine saubere Abstraktionsschicht über Node oder anderen Tools, unabhängig von Ihrer zugrunde liegenden Modulverknüpfungsstrategie.
Yarn speichert einen lokalen oder globalen Cache aller zuvor heruntergeladenen Pakete, um die Installation zu beschleunigen und die Offline-Funktionalität zu gewährleisten. Manchmal, insbesondere nach Experimenten oder mehreren Versionswechseln, kann der Cache fehlerhaft oder unvollständig werden. Wenn Sie Cache-Probleme vermuten, können Sie ihn wie folgt zurücksetzen:
yarn cache clean
Wenn Sie wissen möchten, wo Yarn diese zwischengespeicherten Artefakte speichert, yarn cache dir Gibt den Standort aus. Dies ist besonders praktisch, wenn Sie den Cache-Ordner in einem Antivirenprogramm unter Windows auf die Whitelist setzen müssen, um langsame Installationen zu vermeiden, die durch ein aggressives Scannen jeder heruntergeladenen Datei verursacht werden.
Yarn mit .yarnrc.yml konfigurieren
Modern Yarn zentralisiert die Projektkonfiguration in der .yarnrc.yml Datei. Dieses YAML-Dokument steuert, wie Abhängigkeiten verknüpft werden, wo Caches gespeichert werden, wie streng PnP sein soll, Registry-URLs, Telemetriedaten und mehr.
Eine typische Konfiguration könnte folgendermaßen aussehen:
nodeLinker: pnp
pnpMode: strict
compressionLevel: mixed
enableGlobalCache: true
enableTelemetry: false
Das nodeLinker Die Einstellung ist besonders wichtig, weil sie definiert, wie Module aufgelöst werden. Gültige Optionen umfassen: pnp (Plug'nPlay ohne node_modules Ordner), node-modules (klassisches Layout) und manchmal ein Linker im pnpm-Stil. Falls Kompatibilitätsprobleme mit Tools auftreten, die fest codieren node_modules Annahmen, Umstellung auf node-modules löst sie oft.
compressionLevel Gibt Yarn an, wie aggressiv zwischengespeicherte Pakete komprimiert werden sollen. Ein Wert von 0 Deaktiviert die Komprimierung vollständig für maximale Geschwindigkeit. 1 erzwingt vollständige Komprimierung für minimalen Speicherplatzbedarf, und mixed Sie schafft ein Gleichgewicht zwischen beiden Welten, was für die meisten Teams die sinnvolle Standardeinstellung darstellt.
Der Weg zu enableGlobalCache bewirkt, dass Yarn ein gemeinsam genutztes Cache-Verzeichnis projektübergreifend wiederverwendet. Auf diese Weise vermeidet Yarn, Bibliotheken mehrfach herunterzuladen, wenn mehrere Repositories von denselben Bibliotheken abhängen, und spart so sowohl Netzwerkbandbreite als auch Speicherplatz.
Schließlich enableTelemetry Steuert, ob Yarn anonyme Nutzungsinformationen an die Maintainer zurücksendet. Viele Unternehmen ziehen es vor, diese Option aus Datenschutz- und Compliance-Gründen zu deaktivieren, während andere sie aktiviert lassen, um die Projektplanung zu erleichtern; in jedem Fall handelt es sich lediglich um ein Flag in dieser Konfigurationsdatei.
Git-Integration: Was committen und was ignorieren?
Weil Yarn einen Teil seiner Maschinen in einem .yarn Bei der Verzeichnisverwaltung ist es wichtig, sorgfältig auszuwählen, was in die Versionskontrolle aufgenommen wird. Einige dieser Dateien sollten unbedingt nachverfolgt werden, während andere Cache- oder Build-Artefakte sind, die das Repository nur unnötig aufblähen würden.
Ein minimales .gitignore Die in vielen Berry-Projekten angewandte Strategie sieht folgendermaßen aus:
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
Dieses Muster ignoriert das gesamte .yarn Ordner, fügt dann aber Unterverzeichnisse, die übertragen werden müssen, in eine Whitelist ein. Das releases Das Verzeichnis enthält beispielsweise die projektspezifische Yarn-Binärdatei; ohne diese erhalten andere Entwickler beim Klonen des Repos möglicherweise nicht genau dieselbe CLI-Version.
Andere zugelassene Pfade wie z. B. .yarn/plugins or .yarn/sdks enthalten benutzerdefinierte Plugins und Editorintegrationen. Durch die Versionskontrolle wird sichergestellt, dass alle Teammitglieder die gleichen Plugins und Sprachwerkzeuge nutzen.
Das .pnp.* Bei den Einträgen handelt es sich um die Plug'n'Play-Manifestdateien, die den Abhängigkeitsbaum beschreiben, wenn Sie den PnP-Modus verwenden. Das Einchecken der Manifeste ist unerlässlich für reproduzierbare und manchmal sogar Zero-Install-Workflows, bei denen CI-Systeme oder neue Klone das Projekt sofort ausführen können, ohne die Manifeste neu generieren zu müssen.
Denken Sie außerdem daran, dass yarn.lock ist ein erstklassiger Bestandteil Ihres Repositorys. Es muss stets eingecheckt und zusammen mit Änderungen der Abhängigkeiten aktualisiert werden, sonst gehen alle Vorteile des Determinismus von Yarn verloren.
Yarn vs. npm: Wann Yarn seine Stärken ausspielt
Yarn und npm lösen das gleiche Kernproblem: die Verwaltung von Node.js-Abhängigkeiten, aber Yarn unterscheidet sich in mehreren praktischen Szenarien. Der sichtbarste Unterschied liegt oft in der Leistung: Durch parallelisierte Installationen und intelligenteres Caching schließt Yarn Installationen bei großen Projekten häufig deutlich schneller ab.
Die geringe Festplattennutzung ist ein weiterer Pluspunkt, insbesondere wenn man PnP nutzt. Durch Eliminieren node_modulesEin typisches Projekt kann dadurch deutlich weniger Speicherplatz beanspruchen, und Tools, die sich gut in PnP integrieren lassen, profitieren von schnelleren Modulauflösungen, da Node nicht mehr tiefe und sich wiederholende Verzeichnisstrukturen durchlaufen muss.
Was das Verhalten von Sperrdateien angeht, so … yarn.lock wird allgemein für seine Kompaktheit und seinen hohen Determinismus geschätzt. Es protokolliert explizit Auflösungsentscheidungen, wodurch es einfacher wird, zu verstehen, warum eine bestimmte Version gewählt wurde, und Versionskonflikte zu beheben.
Monorepos sind ein Bereich, in dem Yarn dank seiner Workspaces-Funktion schon lange führend ist. Mit Workspaces teilen sich mehrere Pakete in einem einzigen Repository eine Sperrdatei, Abhängigkeiten werden effizient aufgelöst und lokale Pakete werden automatisch ohne Konfigurations-Boilerplate verknüpft.
Zu den realen Anwendungsfällen, in denen Yarn seine Stärken besonders ausspielt, gehören oft komplexe CI/CD-Setups, große gemeinsam genutzte Codebasen oder Umgebungen hinter Unternehmensproxys und benutzerdefinierten Zertifikaten. Zum Beispiel Laufen yarn install --immutable Innerhalb von CI wird sichergestellt, dass die Installation fehlschlägt, wenn yarn.lock Die Datei stimmt nicht überein. package.json, wodurch inkonsistente Abhängigkeitszustände erkannt werden, bevor sie in die Produktion gelangen.
Andererseits ist npm nach wie vor eine absolut valide Wahl für kleinere Projekte oder Teams, die stark in das npm-Ökosystem eingebunden sind. Wenn Sie nur eine Handvoll Dienste mit überschaubaren Abhängigkeitsstrukturen pflegen und nicht stark auf Monorepos oder PnP angewiesen sind, überwiegt möglicherweise die Einfachheit der Verwendung von npm die erweiterten Funktionen von Yarn.
Betriebssystemspezifische Installationsoptionen
Obwohl die npm-basierte Installation der globalen CLI fast überall funktioniert, bietet Yarn auch betriebssystemspezifische Distributionen und Skripte an. Diese sind nützlich, wenn Sie native Paketmanager bevorzugen oder wenn Sie auf Systemen arbeiten, die keine komfortable npm-Einrichtung bieten.
Auf macOS ist die Installation von Yarn über Homebrew eine sehr beliebte Methode. Ein typischer Ablauf, vorausgesetzt, Sie haben Node bereits installiert (möglicherweise auch über Homebrew), sieht folgendermaßen aus:
brew install yarn
Wenn Sie nvm oder einen anderen Node-Versionsmanager verwenden, stellen Sie sicher, dass das Shims-Verzeichnis vor allen Homebrew-Nodes in Ihrem PATH erscheint. Andernfalls verwenden Sie beim Ausführen von Yarn-Skripten möglicherweise eine andere Node-Version als erwartet.
Eine weitere Option unter macOS ist MacPorts, mit dem sich sowohl Node.js als auch Yarn installieren lassen, falls diese noch nicht vorhanden sind. Für noch mehr Kontrolle stellt Yarn außerdem ein Installations-Shell-Skript zur Verfügung, das unter macOS und generischen Unix-Systemen funktioniert; durch Einbinden dieses Skripts in Ihre Shell wird Yarn in einem Schritt heruntergeladen und eingerichtet.
Unter Windows werden die Installation über den MSI-Installer, Chocolatey oder Scoop empfohlen. Der MSI-Installer führt Sie durch einen grafischen Assistenten und stellt in der Regel sicher, dass Node.js im Rahmen des Installationsprozesses installiert wird. Scoop hingegen ermöglicht die Installation von Yarn über die Kommandozeile und schlägt optional Node.js vor, falls es fehlt.
Bei der Installation von Yarn unter Windows ist es ratsam, sowohl Ihren Projektordner als auch das Yarn-Cache-Verzeichnis, das sich üblicherweise unter befindet, auf die Whitelist zu setzen. %LocalAppData%\Yarn, in Ihrem Antivirenprogramm. Andernfalls wird möglicherweise jeder einzelne Dateidownload und -schreibvorgang gescannt, was Ihre Installationen erheblich verlangsamt.
Bei Linux-Distributionen gibt es oft mehrere Optionen: offizielle Systempakete, Yarns eigene Repositories oder manuelle Installationen per Tarball. Unter Debian und Ubuntu können Sie beispielsweise das APT-Repository von Yarn hinzufügen, optional NodeSource so konfigurieren, dass eine aktuelle Node.js-Version bezogen wird, und anschließend Yarn installieren. apt.
Bei Distributionen wie CentOS, Fedora, RHEL oder Arch bietet Yarn GPG-signierte Tarballs an, die Sie herunterladen und an beliebiger Stelle auf der Festplatte entpacken können. Bei diesen manuellen Konfigurationen müssen Sie in der Regel die Signatur des Tarballs mit GPG überprüfen und anschließend das entpackte Yarn-Verzeichnis zu Ihrem PATH hinzufügen, damit die yarn Der Befehl ist systemweit verfügbar.
PATH-Konfiguration unter Unix, Linux und Windows
Eine häufige Fehlerquelle bei der Installation ist die PATH-Konfiguration: Yarn ist möglicherweise installiert, aber die Shell kann die Binärdatei nicht finden. In diesem Fall müssen Sie Ihre Umgebung aktualisieren, sodass das Yarn-Verzeichnis in die PATH-Variable aufgenommen wird.
Bei manuellen Tarball-Installationen auf Unix-ähnlichen Systemen besteht das übliche Vorgehen darin, einen Pfad zu exportieren, der auf Yarns Verzeichnis verweist. bin Verzeichnis. Beispielsweise:
export PATH="$PATH:/opt/yarn-[version]/bin"
Diese Zeile fügen Sie in Ihre Shell-Profildatei ein (z. B. .bashrc, .bash_profile, .zshrc, oder Ähnliches), öffnen Sie dann eine neue Terminal-Sitzung oder laden Sie die Datei neu, damit die Änderung wirksam wird. Einmal getan, yarn --version sollte von jedem Verzeichnis aus funktionieren.
Wenn Sie sich anlehnen yarn global Yarn muss außerdem sicherstellen, dass sich sein globaler bin-Ordner im PATH befindet. Eine schnelle Möglichkeit, dies zu erreichen, besteht darin, Ihr Profil um Folgendes zu erweitern:
export PATH="$PATH:`yarn global bin`"
Fischschalenbenutzer verlassen sich stattdessen auf fish_user_paths und kann ausgeführt werden:
set -U fish_user_paths (yarn global bin) $fish_user_paths
Unter Windows müssen Sie möglicherweise auch manuell das Yarn-Binärverzeichnis zur PATH-Umgebungsvariablen hinzufügen. Ein einfaches Beispiel wäre:
set PATH=%PATH%;C:\.yarn\bin
In der Praxis übernehmen grafische Installationsprogramme oder Windows-Paketmanager oft die PATH-Konfiguration für Sie, aber es ist hilfreich zu wissen, wie man sie manuell anpasst, wenn etwas nicht wie erwartet funktioniert.
Typische Installationsprobleme und wie man sie behebt
Selbst bei klarer Dokumentation treten bei der Einführung von Yarn durch Teams immer wieder bestimmte Installationsprobleme auf. Zum Glück verfügen die meisten von ihnen über gut verstandene, reproduzierbare Lösungen.
Ein immer wiederkehrendes Problem sind Berechtigungsfehler bei der Installation der globalen CLI über npm. Wenn Ihr npm-Präfix auf ein Systemverzeichnis verweist, kann ein Befehl wie der folgende verwendet werden:
sudo npm install -g yarn
Es mag funktionieren, ist aber langfristig nicht ideal. Eine bessere Vorgehensweise ist es, npm so zu konfigurieren, dass es ein benutzereigenes globales Verzeichnis verwendet. Sie können Ihr aktuelles Präfix mit folgendem Befehl überprüfen:
npm config get prefix
Wenn es auf etwas unterhalb von /usrErstellen Sie Ihr eigenes Verzeichnis und konfigurieren Sie npm neu. Zum Beispiel:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
Nach dem Neuladen Ihrer Shell-Konfiguration sollten Sie Yarn global installieren können, ohne sudowodurch viele Probleme mit Genehmigungen vermieden werden.
Eine weitere häufige Ursache für Verwirrung sind Versionsunterschiede zwischen der globalen Yarn-Version und der Projekt-Yarn-Version. Beachten Sie, dass dies beabsichtigt ist: Die globale 1.x-CLI ist lediglich ein Launcher, und wenn sie innerhalb eines mit Berry konfigurierten Projekts verwendet wird, delegiert sie an die jeweils vorhandene Version. .yarn/releases.
Falls Pakete zu fehlen scheinen, obwohl Yarn eine erfolgreiche Installation gemeldet hat, könnte dies daran liegen, dass Sie auf ein Tool stoßen, das PnP noch nicht versteht. Manche Editoren, Linter oder Build-Tools setzen voraus, dass node_modules Das Verzeichnis wird nicht gefunden und der Vorgang schlägt fehl, wenn es nicht existiert. Gängige Lösungen sind die Aktivierung der Yarn SDKs für Editoren, die Verwendung kompatibler Tools aus der Yarn-Supportmatrix oder das vorübergehende Umschalten des Linkers auf [fehlende Information]. node-modules .yarnrc.yml.
In aktiven Teams, in denen mehrere Branches parallel Abhängigkeiten hinzufügen oder ändern, sind Konflikte mit Sperrdateien unvermeidlich. Wenn die Funktion yarn.lock Bei Konflikten während eines Merges ist eine effektive Strategie, einen Branch als Basisversion auszuwählen, Textkonflikte nach Möglichkeit manuell zugunsten dieser Basisversion zu lösen und dann den Merge durchzuführen. yarn install um eine saubere Sperrdatei zu generieren, die Sie anschließend als neue Quelle der Wahrheit erneut einchecken.
Cache-bezogene Probleme lassen sich in der Regel durch ein einfaches Problem lösen. yarn cache clean gefolgt von einem frischen yarn install. Wenn Yarn sich ungewöhnlich verhält, Pakete veraltet aussehen oder seltsame Auflösungsfehler auftreten, führt das Leeren des Caches und die Neuinstallation oft dazu, dass das System ohne weitere Untersuchungen wieder in einen normalen Zustand versetzt wird.
Überprüfung nach der Installation und laufende Leistungsoptimierung
Sobald Yarn installiert ist und Befehle erfolgreich ausgeführt werden, empfiehlt es sich, einige kurze Systemprüfungen durchzuführen, um sicherzustellen, dass alles für Ihr Projekt korrekt verdrahtet ist. Der erste und einfachste Schritt ist die Bestätigung der Version:
yarn --version
Danach, in jedem Projekt, das bereits ein package.json, Ausführung yarn install Das Fehlen von Fehlern ist ein starkes Indiz dafür, dass Ihre Umgebung, der Zugriff auf die Registrierung und die Node-Version kompatibel sind. Wenn Ihre Abhängigkeiten umfangreich sind, sollten Sie die Installationszeit im Auge behalten; bei nachfolgenden Ausführungen sollte die Zwischenspeicherung und Parallelverarbeitung von Yarn diese Zeit erheblich verkürzen.
Yarn bietet auch Befehle wie yarn outdated um zu sehen, für welche Pakete neuere Versionen verfügbar sind, und yarn list --depth=0 Alle tatsächlich installierten Abhängigkeiten der obersten Ebene ausgeben. Diese Tools helfen Ihnen, den Überblick über Abhängigkeitsabweichungen zu behalten und zu entscheiden, wann Aktualisierungen geplant werden sollten.
In puncto Leistung gibt es nach der Installation mehrere Stellschrauben. Einstellungen wie networkConcurrencyDurch benutzerdefinierte Cache-Ordner oder das Deaktivieren ausführlicher Fortschrittsanzeigen in der CI-Pipeline lassen sich bei großen Installationen Sekunden oder sogar Minuten einsparen. Beispielsweise kann die Parallelität durch Folgendes erhöht werden:
yarn config set network-concurrency 8
ermöglicht es Yarn, mehr Netzwerkanfragen parallel zu senden, was bei schnellen Verbindungen oft die Downloadgeschwindigkeit erhöht.
Schließlich ermöglicht die Kombination von Yarn mit skalierbarer Infrastruktur (wie containerbasierten CI-Pipelines oder Cloud-Build-Plattformen) bei sehr großen Monorepos oder Multi-Umgebungs-Setups die volle Ausnutzung seines deterministischen und cache-freundlichen Designs. Weil jede Installation von folgenden Anweisungen begleitet wird: yarn.lock und PnP oder node_modules Metadaten und Caches, die zwischen CI-Knoten geteilt oder über mehrere Builds hinweg wiederverwendet werden, können die Installationszeiten drastisch verkürzen.
Zusammenfassend lässt sich sagen, dass es sich schnell auszahlt, sich die Zeit zu nehmen, zu verstehen, wie man Yarn richtig installiert, es pro Projekt festlegt, PATH und Konfiguration anpasst und seine Caching- und Workspace-Funktionen nutzt. Das Ergebnis sind schnellere Installationen, besser vorhersagbare Builds, eine bessere Monorepo-Ergonomie und ein Abhängigkeitsmanagement-Workflow, der sich leichter über Teammitglieder, CI/CD-Systeme und Produktionsumgebungen hinweg reproduzieren lässt.