Skip to content

pnpm

A fast Node.js package manager that saves disk space by sharing installed packages.

Stars
37k
Forks
2k
Licence
MIT
Language
Rust
Last update
4 days ago
Type
Dev tool

What it is

pnpm is a package manager for JavaScript and Node.js projects, the tool that downloads and installs the libraries a project depends on. According to its README, it is fast and disk-efficient because files inside node_modules are linked from a single content-addressable store rather than copied for each project. It also aims to be strict, so a package can only access dependencies listed in its own package.json, and it uses a lockfile (pnpm-lock.yaml) so installs are repeatable.

  • Install and manage the dependencies of a Node.js web application
  • Manage several related packages in one monorepo using workspaces
  • Use pnpm runtime to manage Node.js versions, as described in the README

Great for

  • Developers working in Node.js projects who want faster installs and less disk use
  • Teams maintaining monorepos with multiple packages in one repository
  • Projects that need strict dependency declarations to avoid accidental imports
  • Developers who want a lockfile for reproducible installs

Not ideal for

  • People who need a stable, fully proven tool for critical production use without checking the README's note about the experimental Rust port (pacquet) is not the default CLI, so this is a caveat only if you plan to try it
  • Non-developers with no need to install JavaScript libraries
  • Projects that depend on behaviour specific to npm or Yarn, since switching package managers can require changes; the README points to a feature comparison page for details
Step-by-step guide: how to use pnpmInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    Clone the repository

    git clone https://github.com/pnpm/pnpm.git
  2. 2

    Run it

    • Install pnpm using the instructions at https://pnpm.io
    • Open a Node.js project that has a package.json
    • Run pnpm install in the project folder
    • Check the pnpm-lock.yaml file that gets created
  3. 3

    Get the most out of it

    • Use workspaces for monorepos, as described at pnpm.io/workspaces
    • Compare features with npm and Yarn on the feature comparison page linked in the README
    • Use pnpm runtime to manage Node.js versions, per the README

Downloads

Strengths

  • The README claims up to 2x faster installs than alternatives, with a linked benchmark
  • Shares package files from one store across projects, reducing disk usage
  • Strict dependency access and a lockfile help keep projects predictable

Trade-offs

  • Speed and disk claims come from the project's own README; verify on your own projects
  • Strict dependency rules can break projects that rely on undeclared packages
  • The Rust port (pacquet) is described as experimental

How it compares

ProjectStarsTypeLevelUpdatedBest for
pnpm (this)37kDev toolbeginner4 days agoDevelopers working in Node.js projects who want faster installs and less disk use
patch-package11.2kDev toolbeginner1.1 years agoTeams running a Node.js app who need a quick fix to a dependency before the upstream project publishes one
poetry34.3kDev toolintermediate5 days agoPython developers starting a new project who want one config file for dependencies and packaging
composer29.6kDev toolbeginner4 days agoPHP developers starting a new project who want standard third-party libraries
nvm48.1kAppbeginner4 days agoWindows developers who work on several Node.js projects that need different versions
UniGetUI26.8kAppbeginner4 days agoWindows users who already use WinGet, Scoop or Chocolatey and want one place to manage them

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.