zurück zur Tech-Wiki
Tech-Wiki/Tools
P

pnpm

Schneller, festplattensparender Package-Manager mit Workspaces.

·pnpm·MIT

Übersicht

Was ist es?

pnpm ist der schnelle, festplattensparende Package-Manager — Content-Addressable-Store, Symlinks statt Kopien, strikte node_modules-Struktur. Default-Choice für moderne JS-Monorepos.

Quickstart

corepack enable
corepack prepare pnpm@latest --activate
pnpm --version

pnpm install
pnpm add -D vitest
pnpm dev

Typische Patterns

  • pnpm-workspace.yaml für Monorepos:
    packages:
      - 'apps/*'
      - 'packages/*'
    
  • pnpm -r run build führt Skript in allen Workspace-Packages aus.
  • pnpm dlx statt npx — keine globale Pollution.
  • overrides in package.json für transitive Dependency-Pinning.
  • pnpm patch <pkg> für inline-Patches statt patch-package.

Gotchas / Was oft schiefgeht

  • Strikte node_modules-Struktur → Tools, die auf Hoisted-Layouts angewiesen sind (Legacy), brechen. node-linker=hoisted als Fallback in .npmrc.
  • pnpm-lock.yaml muss committet werden — nicht ignorieren.
  • CI ohne Cache → Cold-Install langsam. actions/cache auf ~/.local/share/pnpm/store.
  • Workspace-Protocol workspace:* muss bei Publish ersetzt werden — pnpm macht das automatisch, andere Tools nicht.
  • Globale Bins: pnpm setup einmal ausführen, sonst pnpm i -g ohne Effekt.

Wann nicht?

Bei Tools/Frameworks, die explizit npm/yarn voraussetzen und Workarounds zu teuer sind. Bei One-File-Skripten ohne Deps offensichtlich keine Package-Manager nötig.