What is pnpm?
It uses hard links and symlinks to save one version of a module only ever once on a disk. When using npm or Yarn for example, if you have 100 projects using the same version of lodash, you will have 100 copies of lodash on disk. With pnpm, lodash will be saved in a single place on the disk and a hard link will put it into the node_modules where it should be installed.
pnpm is a tool in the Package Managers category of a tech stack.
pnpm is an open source tool with 20.7K GitHub stars and 609 GitHub forks. Here’s a link to pnpm's open source repository on GitHub
Who uses pnpm?
19 companies reportedly use pnpm in their tech stacks, including BlaBlaCar, Vinted, and OVRSEA.
59 developers on StackShare have stated that they use pnpm.
Pros of pnpm
Works as a Node.js package manager
Has CLI auto-completion
Has a nice UI
Uses less disk space
- Fast. As fast as npm and Yarn
- Efficient. One version of a package is saved only ever once on a disk
- Great for multi-package repositories (a.k.a. monorepos)
- See the recursive commands
- Strict. A package can access only dependencies that are specified in its package.json
- Deterministic. Has a lockfile called pnpm-lock.yaml
- Works everywhere. Works on Windows, Linux and OS X
- Aliases. Install different versions of the same package or import it using a different name.
pnpm Alternatives & Comparisons
What are some alternatives to pnpm?
See all alternatives
Yarn caches every package it downloads so it never needs to again. It also parallelizes operations to maximize resource utilization so install times are faster than ever.
It is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
Homebrew installs the stuff you need that Apple didn’t. Homebrew installs packages to their own directory and then symlinks their files into /usr/local.