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.
Use npm-registry-client for communicating with the npm registry.
This will guarantee that pnpm communicates to the registry the
same way npm does.
Close#367, PR #369
GitHub API usage removed. The tarball is used from codeload.github.com
Close#361, PR #363
BREAKING CHANGE:
The folder names of packages fetched from GitHub changed to not contain
information that would require an API request to get.
Old folder name: is-negative@github+kevva+is-negative+HEAD
New folder name: github+kevva+is-negative+HEAD
Users are forced to redownload their stores to avoid orphan folders after
the naming change.
There is no need to download packages to a temp
folder before moving them to the store.
This change should greatly decrease the number
of filesystem operations.
pnpm currently runs the post install scripts of dependencies
immediately once their resources were downloaded and does that
asynchronously.
npm runs all the post install scripts once all the resources
were downloaded and does that sequentially.
This changes makes pnpm run the scripts similarly to how npm
runs them
close#337
Add the `update-notifier` module used by a lot of open source projects, making it easy for users to stay up to date with latest version of pnpm.
PR #340
! can be part of a valid npm package name. Use + as a
delimiter instead.
close#276, PR #320
BREAKING CHANGE:
Stores created with the ! delimiter are not compatible
with the new version that uses +.
Any store created by older versions of pnpm has to be
removed and reinstalled.
Use the retry package to support all the different
retry strategy configurations that can be used with npm:
fetch-retries
fetch-retry-factor
fetch-retry-mintimeout
fetch-retry-maxtimeout
More info about the configs: https://docs.npmjs.com/misc/config#fetch-retriesclose#317, PR #327