pnpm Package Manager Cheat Sheet

Quick reference guide for pnpm: Workspace filters, monorepo commands, lockfile management, and store.

Package Managers
pnpm
package-manager
monorepo

pnpm is a fast, disk-space-efficient package manager for JavaScript and Node.js projects using content-addressable hard links.

Workspace Configuration (`pnpm-workspace.yaml`)

yaml
packages:
  - "apps/*"
  - "packages/*"
  - "!**/test/**"

Essential `pnpm` CLI Commands

Table
CommandAction / Purpose
pnpm installInstall all dependencies listed in package.json
pnpm add lodashAdd lodash dependency to current package
pnpm add -D vitestAdd vitest as devDependency
pnpm remove expressUninstall package dependency
pnpm update --latestInteractive dependency update wizard for latest package versions
pnpm run devExecute script command declared in package.json

Monorepo & Workspace Filtering (`--filter`)

bash
# Run build command ONLY in @app/web workspace package
pnpm --filter @app/web run build

# Run tests in all packages modified since main branch
pnpm --filter "...[origin/main]" test

# Add dependency to specific workspace package
pnpm --filter @app/api add jsonwebtoken

# Run script recursively across ALL workspace packages
pnpm -r run lint

Global Store & Maintenance

Table
CommandPurpose
pnpm store pathPrint absolute directory path of global pnpm content-addressable store
pnpm store pruneRemove unreferenced, orphaned package files from global store
pnpm auditCheck installed packages for known security vulnerabilities

Common Pitfalls & Tips

[!WARNING] pnpm enforces strict dependency isolation! A package cannot import an undeclared transitive dependency unless explicitly added to its own package.json.

[!TIP] Use pnpm import to generate pnpm-lock.yaml automatically when migrating existing projects from npm package-lock.json or Yarn yarn.lock.