zkochan 40621818bc fix(uninstall): dependencies from all sources can be deleted
pnpm uninstall could not always link the dependency name to the
dependency ID (used in the store). To solve this issue, a dependency
name to ID map is added to the dependencies section of `store.json`.

PR #371

BREAKING CHANGE:

The structure of the `store.json` has been changed.

Previously the dependencies property contained just a list of
dependency IDs. E.g.:

```json
{
  "dependencies": {
    "math": [
      "sum@1.0.0",
      "@zkochan+max@2.1.0"
    ]
  }
}
```

With this structure it was hard to link the dependencies to their IDs.
The new structure uses a map which links the dependency to its ID:

```json
{
  "dependencies": {
    "map": {
      "sum": "sum@1.0.0",
      "@zkochan/max": "@zkochan+max@2.1.0"
    }
  }
}
```

Unfortunately the stores created by older version of pnpm are not usable
after this breaking change. They have to be removed before using the new
version of pnpm.
2016-09-25 21:28:47 +03:00
2016-09-25 18:26:29 +03:00
2016-09-12 22:00:56 +03:00
2016-09-22 00:43:00 +03:00
2016-09-25 00:55:03 +03:00
2016-09-24 01:43:59 +03:00
2016-09-13 00:41:22 +03:00

pnpm

npm version Status Windows build status

Performant npm installations

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

Read our contributing guide if you're looking to contribute.

Follow the pnpm Twitter account for updates.

Table of Contents

Background

pnpm maintains a flat storage of all your dependencies in node_modules/.store. They are then symlinked wherever they're needed. This nets you the benefits of less disk space usage, while keeping your node_modules clean. 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/_

Install

Install it via npm.

npm install -g pnpm

Usage

Use pnpm in place of npm. It overrides pnpm i, pnpm install and some other command, the rest 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

Prior art

License

MIT © Rico Sta. Cruz and contributors

Description
No description provided
Readme MIT 286 MiB
Languages
TypeScript 98.8%
JavaScript 0.7%
Shell 0.5%