
pnpm is a package manager for JavaScript and Node.js projects that replaces the traditional flat node_modules layout with a single content-addressable store plus hard links and symlinks. Because each version of a package is saved only once on disk, installing dozens of projects no longer duplicates the same dependency tree in every folder.
The official site documents installation, everyday commands, the workspace and filtering syntax for monorepos, configuration through pnpm-workspace.yaml and .npmrc, peer dependency handling, and the built-in store and lockfile behavior. It also explains migration from npm or Yarn and how to run scripts across many packages at once.
It suits developers maintaining several applications that share dependencies, teams running large monorepos with many internal packages, continuous integration pipelines that need fast and reproducible installs, and anyone constrained by disk space on laptops or build containers.
Compared with npm it is usually faster and much stricter about undeclared dependencies, since packages can only reach what they actually declare; compared with Yarn it puts stronger emphasis on workspaces and store reuse, though some tools that assume a fully hoisted node_modules tree may need configuration adjustments.
Commit the lockfile, pin the package manager version with the packageManager field, and enable a store on the same volume as the project so hard links work as intended; if a legacy tool cannot resolve a module, check the hoisting settings before abandoning the migration.