Skip to content
pnpm logo

Pnpm

pnpm

pnpm fast package manager with content-addressable storage. Use for efficient installs.

G1Joshi/Agent-Skills0installs13stars

SKILL.md

Full skill instructions

pnpm

pnpm is fast and disk-efficient. It uses a Content Addressable Store and hard links to avoid duplicating packages. v9 (2025) adds Catalogs.

When to Use

  • Disk Space: Saves GBs by storing one copy of lodash globally.
  • Speed: Installation is instant if packages are already in the store.
  • Monorepos: Excellent workspace support with strict isolation.

Quick Start

# Enable via Corepack
corepack enable
corepack prepare pnpm@latest --activate

pnpm add next

Core Concepts

Content Addressable Store

~/​.local/​share/​pnpm/​store. All packages live here. Projects assume node_modules structure via symlinks.

Strict Resolution

Unlike npm/​yarn (classic), pnpm does not flatten node_modules. You cannot access dependency-of-dependency unless you declare it.

Catalogs (v9)

Define version groups in pnpm-workspace.yaml. e.g. catalog:react-18 ensures all packages use exact same versions.

Best Practices (2025)

Do:

  • Use CI Caching: pnpm is fast, but setup pnpm-store caching in GitHub Actions to make it instant.
  • Use pnpm -r: Run commands recursively across the monorepo.
  • Use only-allow: Add preinstall script to force team to use pnpm.

Don't:

  • Don't shame hoist: If legacy tools break with symlinks, use shamefully-hoist=true in .npmrc as a temporary fix.

References