* feat: this is a best attempt at flattening the dependency tree, similar to what npm does
* test: shamefullyFlatten option
* feat: when uninstalling, if shamefully-flatten is true, we need to re-flatten
* fix: use new shrinkwrap, not the old one
* fix: changes suggested in PR
* test: remove test.only
* fix: various bugs in uninstall and general install, added tests
* test: fix test
* test: use project.has and project.hasNot correctly
* test: remove test.only
* test: added tsconfig.json, added lint-test script, lint fixes
* test: use correct message
* fix: check should work on windows too
* feat: upload side effects cache when needed
* feat: add side-effects-cache support
* fix: review suggestions
* fix: rename to cacheByNodeVersion, compute immediately centralLocation
* fix: make cacheByNodeVersion nullable, fix centralLocation, move nodeMajor to the top
* fix: s/nodeVersion/engineName/
* fix: some renames, add verifyStoreIntegrity option
* fix(deps): update
* fix: fix failing tests
* fix: update package-store to v0.15.1
* test: creating side effects cache
* test: using the side effects cache, in readonly mode too
* fix: rename engine to include 'node', test for opts.force
* Change string compare to a path compare
* Add some tests
* Fix problem with slashes
* Allow injecting of path
* Add a simpler test
* fix: remove unused variable
ref #996
* feat: add reflinks option
* feat: packageImportMethod allows us to specify between auto, hardlink, reflink, copy
* refactor: split hardlinkPkg and reflinkPkg, refactor switch, add default method
* fix: add breaks, describe option in the README
* test: test the copy-only import option
* fix: use mkdirp in reflinkPkg too
* fix: run node-gyp rebuild when install is not specified
* feat: after pnpm install --ignore-script, pnpm rebuild is incremental
* refactor: add --pending option to rebuild, only store pending ids
* fix: javascript magic to avoid if statement
* fix: update pendingBuilds also when removing packages
* fix: remove old code, use testDefaults correctly
* test: add test for rebuild --pending
* chore: make my IDE and TSLint happy
* chore: @types/es6-promise makes IntelliJ happy and Travis sad
* fix: use Set, only append to pendingBuilds if ignoreScripts is true
* test: pendingBuilds handled correctly
* test: install and uninstall behavior with pendingBuilds
* fix: saveModules only when needed
* fix: Set has size, not length, add comment about the use of .concat
The opts.ignoreFile() function allows to ignore files in packages.
Ignoring means that files will neither be unpacked nor linked
into `node_modules`
Ref https://github.com/pnpm/pnpm/issues/804