Yarn — Paket- und Projektmanager für Node.js

Praxis-Guide zu Yarn — schnellem JavaScript-Paketmanager als npm-Alternative mit Workspaces, Offline-Cache und reproduzierbaren Installs per Lockfile.

Yarn ist ein schneller JavaScript-Paketmanager und eine etablierte Alternative zu npm. Über die yarn.lock-Datei hält Yarn deine Abhängigkeiten reproduzierbar und installiert sie dank Offline-Cache zügig. Mit Workspaces verwaltest du Monorepos aus mehreren Paketen in einem einzigen Projekt. Wichtig ist die Unterscheidung zwischen Yarn Classic (v1) und dem modernen „Berry" (v2+), das mit Plug'n'Play ein anderes Installationsmodell mitbringt – einige Kommandos unterscheiden sich daher zwischen beiden Linien.

Installieren & Initialisieren

yarn init — Erzeugt interaktiv eine neue package.json.

yarn init

yarn init -y — Erzeugt eine package.json mit Standardwerten.

yarn init -y

yarn install — Installiert alle Abhängigkeiten aus der package.json.

yarn install

yarn — Kurzform für yarn install.

yarn

yarn install --frozen-lockfile — Installiert, ohne die yarn.lock zu verändern (CI-sicher).

yarn install --frozen-lockfile

Pakete hinzufügen & entfernen

yarn add <package> — Fügt ein Paket als Abhängigkeit hinzu.

yarn add express

yarn add <package>@<version> — Fügt eine bestimmte Version hinzu.

yarn add react@18.2.0

yarn add -D <package> — Fügt ein Paket als Entwicklungs-Abhängigkeit hinzu.

yarn add -D typescript eslint

yarn add --peer <package> — Fügt ein Paket als Peer-Abhängigkeit hinzu.

yarn add --peer react

yarn remove <package> — Entfernt ein Paket.

yarn remove lodash

yarn add <package> --exact — Fügt ein Paket mit exakter Version hinzu (ohne ^- oder ~-Präfix).

yarn add react --exact

Aktualisieren & Informationen

yarn upgrade <package> — Aktualisiert ein Paket auf die neueste Version innerhalb des erlaubten Bereichs.

yarn upgrade express

yarn upgrade --latest — Aktualisiert alle Pakete auf ihre jeweils neueste Version.

yarn upgrade --latest

yarn outdated — Zeigt veraltete Pakete an.

yarn outdated

yarn info <package> — Zeigt ausführliche Informationen zu einem Paket an.

yarn info react

yarn list — Listet installierte Pakete auf.

yarn list --depth=0

yarn why <package> — Zeigt an, warum ein Paket installiert ist (Abhängigkeitskette).

yarn why webpack

Skripte & Ausführen

yarn run <script> — Führt ein in der package.json definiertes Skript aus.

yarn run build

yarn <script> — Kurzform für yarn run.

yarn build

yarn start — Führt das start-Skript aus.

yarn start

yarn test — Führt das test-Skript aus.

yarn test

yarn dlx <package> — Führt ein Paket aus, ohne es zu installieren (wie npx).

yarn dlx create-react-app my-app

Workspaces

yarn workspaces list — Listet alle Workspaces im Projekt auf.

yarn workspaces list

yarn workspace <name> add <package> — Fügt einem bestimmten Workspace ein Paket hinzu.

yarn workspace @myapp/server add express

yarn workspace <name> run <script> — Führt ein Skript in einem bestimmten Workspace aus.

yarn workspace @myapp/client run build

yarn workspaces foreach run <script> — Führt ein Skript in allen Workspaces aus.

yarn workspaces foreach run test

Cache & Konfiguration

yarn cache clean — Leert den globalen Paket-Cache.

yarn cache clean

yarn config set <key> <value> — Setzt einen Konfigurationswert.

yarn config set registry https://registry.npmjs.org

yarn config list — Zeigt alle Konfigurationswerte an.

yarn config list

yarn global add <package> — Installiert ein Paket global (Yarn Classic).

yarn global add serve

Fazit

Yarn bündelt schnelle, reproduzierbare Installs, einen Offline-Cache und erstklassige Workspace-Unterstützung in einem Werkzeug – ideal für Monorepos und größere Projekte. Pinne Versionen bewusst (--exact) und nutze in CI-Pipelines yarn install --frozen-lockfile (Classic) bzw. yarn install --immutable (Berry), damit Builds reproduzierbar bleiben und die yarn.lock nicht unbemerkt verändert wird. Behalte die Install-Skripte deiner Abhängigkeiten im Blick – sie sind ein verbreiteter Supply-Chain-Vektor. Und denk daran, Classic- und Berry-Kommandos nicht zu vermischen: Was unter v1 funktioniert, heißt unter v2+ oft anders.

Verwandte Kommandos

  • apk – Paketmanager von Alpine Linux
  • apt – Paketverwaltung für Debian und Ubuntu
  • apt-get – klassisches Paket-Werkzeug für Debian und Ubuntu