node package manager
Stop writing boring code. Discover, share, and reuse within your team. Create a free org »

@rstacruz/pnpm

pnpm

Performant npm installations

pnpm is a fast implementation of npm install. It is loosely based off ied.

npm version Status Windows build status

Install

Install it via npm.

npm install -g pnpm

Use pnpm in place of npm. It overrides pnpm i and pnpm install—all other commands will passthru to npm.

pnpm install lodash

Custom registries

pnpm uses whatever npm's configured to use as its registry. See: custom registries.

Preview release

pnpm will stay in <1.0.0 until it's achieved feature parity with npm install. See roadmap for details.

Benchmark

time npm i babel-preset-es2015 browserify chalk debug minimist mkdirp
    66.15 real        15.60 user         3.54 sys
time pnpm i babel-preset-es2015 browserify chalk debug minimist mkdirp
    11.04 real         6.85 user         2.85 sys

Design

pnpm maintains a flat storage of all your dependencies in node_modules/.store. They are then symlinked wherever they're needed. See store layout for an explanation.

.
└─ node_modules/
   ├─ .store/
   │  ├─ chalk@1.1.1/_/
   │  │  └─ node_modules/
   │  │     ├─ ansi-styles      -> ../../../ansi-styles@2.1.0/_
   │  │     └─ has-ansi         -> ../../../has-ansi@2.0.0/_
   │  ├─ ansi-styles@2.1.0/_/
   │  └─ has-ansi@2.0.0/_/
   └─ chalk                     -> .store/chalk@1.1.1/_

Prior art

Thanks

pnpm © 2016+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors (list).

ricostacruz.com  ·  GitHub @rstacruz  ·  Twitter @rstacruz