<commit_before># pnpm

> High **p**erformance **npm**

pnpm is a fast implementation of `npm install`.

![](https://raw.githubusercontent.com/rstacruz/pnpm/gh-pages/screencast.gif)

[![Status](https://travis-ci.org/rstacruz/pnpm.svg?branch=master)](https://travis-ci.org/rstacruz/pnpm "See test builds")

## Install

Install it via npm.

```
npm install -g pnpm.js
```

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

```
pnpm install lodash
```

## Preview release

`pnpm` will stay in `<1.0.0` until it's achieved feature parity with `npm install`.

- [ ] `pnpm install`
  - [x] npm packages
  - [ ] GitHub packages
  - [ ] @scoped modules
  - [ ] tarball packages
  - [ ] file packages
  - [ ] bin executables
  - [ ] `--global` installs
  - [ ] `--save` et al
- [ ] `pnpm uninstall`
- [ ] `pnpm ls`

## Design

`pnpm` maintains a flat storage of all your dependencies in `node_modules/.store`. They are then symlinked whereever they're needed.
For instance, an installation of [chalk][]@1.1.1 may look like this:

```
.
├─ node_modules/
│  ├─ .store/
│  │  ├─ chalk@1.1.1/
│  │  │  └─ node_modules/
│  │  │     ├─ ansi-styles      -> ../../ansi-styles@2.1.0
│  │  │     └─ supports-color   -> ../../supports-color@2.0.0
│  │  ├─ ansi-styles@2.1.0/
│  │  └─ supports-color@2.0.0/
│  └─ chalk                     -> .store/chalk@1.1.1
```

[chalk]: https://github.com/chalk/chalk

## Acknowledgements

[ied](https://www.npmjs.com/package/ied) is built on a very similar premise.

## Thanks

**pnpm** © 2016+, <NAME>. Released under the [MIT] License.<br>
Authored and maintained by <NAME> with help from contributors ([list][contributors]).
<commit_msg>Improve design illustration<commit_after># pnpm

> High **p**erformance **npm**

pnpm is a fast implementation of `npm install`.

![](https://raw.githubusercontent.com/rstacruz/pnpm/gh-pages/screencast.gif)

[![Status](https://travis-ci.org/rstacruz/pnpm.svg?branch=master)](https://travis-ci.org/rstacruz/pnpm "See test builds")

## Install

Install it via npm.

```
npm install -g pnpm.js
```

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

```
pnpm install lodash
```

## Preview release

`pnpm` will stay in `<1.0.0` until it's achieved feature parity with `npm install`.

- [ ] `pnpm install`
  - [x] npm packages
  - [ ] GitHub packages
  - [ ] @scoped modules
  - [ ] tarball packages
  - [ ] file packages
  - [ ] bin executables
  - [ ] `--global` installs
  - [ ] `--save` et al
- [ ] `pnpm uninstall`
- [ ] `pnpm ls`

## Design

`pnpm` maintains a flat storage of all your dependencies in `node_modules/.store`. They are then symlinked whereever they're needed.
This is like `npm@2`'s recursive module handling (without the disk space bloat), and like `npm3`s flat dependency tree (except with each module being predictably atomic).
To illustrate, an installation of [chalk][]@1.1.1 may look like this:

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

[chalk]: https://github.com/chalk/chalk

## Acknowledgements

[ied](https://www.npmjs.com/package/ied) is built on a very similar premise.

## Thanks

**pnpm** © 2016+, <NAME>. Released under the [MIT] License.<br>
Authored and maintained by <NAME> with help from contributors ([list][contributors]).

{'fraction_non_alphanumeric': 0.17650229048773916, 'fraction_numerical': 0.017246025330099703, 'mean_word_length': 2.944739638682253, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 18, 'https://': 10, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5667834', 'n_tokens_mistral': 1449, 'n_tokens_neox': 1402, 'n_words': 399}