pnpm is a package manager for JavaScript and Node.js projects, built as a drop-in alternative to npm and Yarn. It's aimed at developers and teams who deal with large dependency trees, monorepos, or CI pipelines where install speed and disk usage matter. Instead of copying package files into every project's node_modules, pnpm keeps a single content-addressable store on disk and links files from there, cutting down on duplication and speeding up installs.
The project has been used in production since 2016 and is reported to run in Microsoft's Rush monorepos with hundreds of projects and daily PRs. It supports Windows, Linux, and macOS, and ships a CLI written in JavaScript with an experimental Rust port (pacquet) in progress.
package.json, which catches phantom dependencies that work by accident under npm's flat node_modules.pnpm-lock.yaml lockfile pins exact dependency versions across machines and CI.pnpm fits well in monorepos with many internal packages, where duplicated node_modules across workspaces would otherwise eat disk space and slow CI. It also helps in any setup where install time in CI is a bottleneck, since linked files from the shared store install faster than copying files fresh each time.
Teams that want to catch accidental