npm vs. yarn vs. pnpm: Package Manager Vergleich | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

235 Dokumentationen verfügbar

Wissensdatenbank

NPM Vs Yarn Vs PNPM

Zuletzt aktualisiert: 20.01.2026 um 10:03 Uhr

npm vs. yarn vs. pnpm: Package Manager Vergleich

Die Wahl des Package Managers beeinflusst Performance und Workflow. Vergleichen Sie npm, yarn und pnpm für Ihr Projekt.

Übersicht

Feature npm yarn pnpm
Lockfile package-lock.json yarn.lock pnpm-lock.yaml
Workspaces
Disk-Effizienz Schlecht Schlecht Excellent
Install Speed Mittel Schnell Am schnellsten

Installation

# npm: Mit Node.js dabei
node -v && npm -v

# yarn
npm install -g yarn

# pnpm
npm install -g pnpm
# oder
curl -fsSL https://get.pnpm.io/install.sh | sh -

Basis-Befehle

# Dependencies installieren
npm install          yarn          pnpm install

# Package hinzufügen
npm install lodash   yarn add lodash   pnpm add lodash

# Dev Dependency
npm install -D jest  yarn add -D jest  pnpm add -D jest

# Global
npm install -g pkg   yarn global add   pnpm add -g pkg

# Package entfernen
npm uninstall lodash yarn remove lodash pnpm remove lodash

# Scripts ausführen
npm run build        yarn build        pnpm build
npm test             yarn test         pnpm test

# Cache leeren
npm cache clean      yarn cache clean  pnpm store prune

pnpm: Warum so schnell?

# npm/yarn: Jedes Projekt kopiert alle Packages
project-a/node_modules/lodash/   # 2 MB
project-b/node_modules/lodash/   # 2 MB (Kopie!)
project-c/node_modules/lodash/   # 2 MB (Kopie!)
→ 6 MB total

# pnpm: Content-addressable Store + Symlinks
~/.pnpm-store/lodash-4.17.21/    # 2 MB (einmal!)
project-a/node_modules/.pnpm/lodash → ~/.pnpm-store/...
project-b/node_modules/.pnpm/lodash → ~/.pnpm-store/...
project-c/node_modules/.pnpm/lodash → ~/.pnpm-store/...
→ 2 MB total + Symlinks

Workspaces (Monorepo)

# package.json (npm & yarn)
{
  "name": "monorepo",
  "private": true,
  "workspaces": [
    "packages/*"
  ]
}

# pnpm-workspace.yaml
packages:
  - 'packages/*'
  - 'apps/*'

# Struktur
monorepo/
├── package.json
├── pnpm-workspace.yaml
├── packages/
│   ├── utils/
│   │   └── package.json
│   └── ui/
│       └── package.json
└── apps/
    └── web/
        └── package.json

# Befehle
pnpm install                    # Alle installieren
pnpm --filter utils test        # Nur utils testen
pnpm --filter './packages/*' build  # Alle packages bauen
pnpm add lodash --filter utils  # Zu utils hinzufügen

Lockfiles

# IMMER committen!
# .gitignore sollte NICHT enthalten:
# package-lock.json
# yarn.lock
# pnpm-lock.yaml

# CI: Exakt wie lokal installieren
npm ci           # Schneller als npm install
yarn --frozen-lockfile
pnpm install --frozen-lockfile

Security

# npm
npm audit
npm audit fix
npm audit fix --force

# yarn
yarn audit
yarn audit --fix  # Nur yarn v1

# pnpm
pnpm audit
pnpm audit --fix

Performance-Vergleich

# Benchmark (ungefähre Werte)

Clean Install (node_modules leer):
npm:  45s
yarn: 25s
pnpm: 15s

Mit Cache:
npm:  15s
yarn: 8s
pnpm: 3s

# pnpm gewinnt durch:
# - Hardlinks statt Kopien
# - Symlinked node_modules
# - Parallele Downloads

Migration

# npm → pnpm
rm -rf node_modules package-lock.json
pnpm import  # Konvertiert package-lock.json
pnpm install

# yarn → pnpm
rm -rf node_modules yarn.lock
pnpm import  # Konvertiert yarn.lock
pnpm install

# Empfehlung für neue Projekte: pnpm
# Für bestehende Projekte: Bei aktuellem bleiben

Wann welchen?

  • npm: Standard, überall verfügbar, wenig Setup
  • yarn: Bewährt, gute Workspaces, Plug'n'Play Option
  • pnpm: Beste Performance, Disk-sparend, strikt

Weitere Informationen

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120