Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

npminstall

cnpm79.8kMIT7.12.0

Make npm install fast and handy.

npminstall, npm install, yarn, pnpm, fastest npm install

readme

npminstall

NPM version Node CI Test coverage Known Vulnerabilities npm download FOSSA Status

Make npm install fast and handy.

Node.js and Python required

  • Node.js >= 14.x
  • Python >= 3.x

Use as Cli

Install

$ npm install npminstall -g

Usage

In cnpm

It is integrated in cnpm.

$ npm install cnpm -g
# will use npminstall
$ cnpm install

npminstall

Usage:

  npminstall
  npminstall <pkg>
  npminstall <pkg>@<tag>
  npminstall <pkg>@<version>
  npminstall <pkg>@<version range>
  npminstall <alias>@npm:<name>
  npminstall <folder>
  npminstall <tarball file>
  npminstall <tarball url>
  npminstall <git:// url>
  npminstall <github username>/<github project>

Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
If no argument is supplied, installs dependencies from ./package.json.

Options:

  --production: won't install devDependencies
  --save, --save-dev, --save-optional: save installed dependencies into package.json
  -g, --global: install devDependencies to global directory which specified in `$ npm config get prefix`
  -r, --registry: specify custom registry
  -c, --china: specify in china, will automatically using chinese npm registry and other binary's mirrors
  -d, --detail: show detail log of installation
  --trace: show memory and cpu usages traces of installation
  --ignore-scripts: ignore all preinstall / install and postinstall scripts during the installation
  --no-optional: ignore optionalDependencies during the installation
  --forbidden-licenses: forbit install packages which used these licenses
  --engine-strict: refuse to install (or even consider installing) any package that claims to not be compatible with the current Node.js version.
  --flatten: flatten dependencies by matching ancestors dependencies
  --registry-only: make sure that all packages are installed from registry. Any package that is installed from remote(e.g.: git, remote url) will lead to a failure of installation.
  --cache-strict: use disk cache even on production env

npmuninstall

Usage:

  npmuninstall <pkg>
  npmuninstall <pkg>@<version>
  npmuninstall <pkg>@<version> [<pkg>@<version>]
  npminstall <alias>@npm:<name>
Usage:

  npmlink <folder>

Use as Lib

Install

$ npm install npminstall --save

Usage

const npminstall = require('npminstall');

(async () => {
  await npminstall({
    // install root dir
    root: process.cwd(),
    // optional packages need to install, default is package.json's dependencies and devDependencies
    // pkgs: [
    //   { name: 'foo', version: '~1.0.0' },
    // ],
    // install to specific directory, default to root
    // targetDir: '/home/admin/.global/lib',
    // link bin to specific directory (for global install)
    // binDir: '/home/admin/.global/bin',
    // registry, default is https://registry.npmjs.org
    // registry: 'https://registry.npmjs.org',
    // debug: false,
    // storeDir: root + 'node_modules',
    // ignoreScripts: true, // ignore pre/post install scripts, default is `false`
    // forbiddenLicenses: forbit install packages which used these licenses
  });
})().catch(err => {
  console.error(err);
});

Support Features

  • <input checked="" disabled="" type="checkbox"> all types of npm package
    • <input checked="" disabled="" type="checkbox"> a) a folder containing a program described by a package.json file (npm install file:eslint-rule)
    • <input checked="" disabled="" type="checkbox"> b) a gzipped tarball containing (a) (npm install ./rule.tgz)
    • <input checked="" disabled="" type="checkbox"> c) a url that resolves to (b) (npm install https://github.com/indexzero/forever/tarball/v0.5.6)
    • <input checked="" disabled="" type="checkbox"> d) a <name>@<version> that is published on the registry with (c)
    • <input checked="" disabled="" type="checkbox"> e) a <name>@<tag> (see npm-dist-tag) that points to (d)
    • <input checked="" disabled="" type="checkbox"> f) a <name> that has a "latest" tag satisfying (e)
    • <input checked="" disabled="" type="checkbox"> g) a <git remote url> that resolves to (a) (npm install git://github.com/timaschew/cogent#fix-redirects)
  • <input checked="" disabled="" type="checkbox"> All platform support
  • <input checked="" disabled="" type="checkbox"> global install (-g, --global)
  • <input checked="" disabled="" type="checkbox"> preinstall, install, postinstall scripts
  • <input checked="" disabled="" type="checkbox"> node-gyp@9, only support Python@3
    • <input checked="" disabled="" type="checkbox"> node-pre-gyp
  • <input checked="" disabled="" type="checkbox"> bin (yo@1.6.0, fsevents@1.0.6)
  • <input checked="" disabled="" type="checkbox"> scoped package
  • <input checked="" disabled="" type="checkbox"> bundleDependencies / bundledDependencies (node-pre-gyp@0.6.19, fsevents@1.0.6)
  • <input checked="" disabled="" type="checkbox"> optionalDependencies (pm2@1.0.0)
  • <input checked="" disabled="" type="checkbox"> peerDependencies (co-defer@1.0.0, co-mocha@1.1.2, estraverse-fb@1.3.1)
  • <input checked="" disabled="" type="checkbox"> deprecate message
  • <input checked="" disabled="" type="checkbox"> --production mode
  • <input checked="" disabled="" type="checkbox"> save, save-dev, save-optional
  • <input checked="" disabled="" type="checkbox"> support ignore-scripts
  • <input checked="" disabled="" type="checkbox"> uninstall
  • <input checked="" disabled="" type="checkbox"> resolutions
  • <input checked="" disabled="" type="checkbox"> npm alias
  • <input checked="" disabled="" type="checkbox"> npm workspaces

Different with NPM

This project is inspired by pnpm, and has a similar store structure like pnpm. You can read pnpm vs npm to see the different with npm.

Limitations

  • You can't install from shrinkwrap(and don't want to support for now).
  • Peer dependencies are a little trickier to deal with(see rule 1 below).
  • You can't publish npm modules with bundleDependencies managed by npminstall(because of rule 2 below).
  • npminstall will collect all postinstall scripts, and execute them until all dependencies installed.
  • If last install failed, better to cleanup node_modules directory before retry.

node_modules directory

Two rules:

  1. The latest version of modules will link at options.storeDir's node_modules.
  2. Module's dependencies will link at module's node_modules.

e.g.:

  • app: { "dependencies": { "debug": "2.2.0" } } (root)
  • debug@2.2.0: { "dependencies": { "ms": "0.7.1" } }
app/
├── package.json
└── node_modules
    ├── _debug@2.2.0@debug
    │   ├── node_modules
    │   │   └── ms -> ../../_ms@0.7.1@ms
    ├── _ms0.7.1@ms
    ├── debug -> _debug@2.2.0@debug
    └── ms -> _ms@0.7.1@ms # for peerDependencies

flattened vs nested

npminstall will always try to install the maximal matched version of semver:

root/
  koa@1.1.0
  mod/
    koa@~1.1.0
# will install two different version of koa when use npminstall.

you can enable flatten mode by --flatten flag, in this mod, npminstall will try to use ancestors' dependencies to minimize the dependence-tree.

root/
  koa@1.1.0
  mod/
    koa@~1.1.0

root/
  koa@1.1.0
  mod/
    koa@^1.1.0
# both the same version: 1.1.0

root/
  koa@~1.1.0
  mod/
    koa@^1.1.0
# both the same version: 1.1.2

root/
  mod/
    koa@^1.1.0
  moe/
    koa@~1.1.0
# two different versions

npminstall will always treat n.x and n.m.x as flattened

root/
  koa@1.1.0
  mod/
    koa@1.1.x
both the same version: 1.1.0

root/
  koa@~1.1.0
  mod/
    koa@1.x
both the same version: 1.1.2

Resolutions

support selective version resolutions like yarn. which lets you define custom package versions inside your dependencies through the resolutions field in your package.json file.

resolutions also supports npm alias. It's a workaround feature to fix some archived/inactive/ package by uploading your own bug-fixed version to npm registry.

see use case at unittest package.json.

Benchmarks

https://github.com/cnpm/npminstall-benchmark

cnpmjs.org install

cli real user sys
npminstall 0m10.908s 0m8.733s 0m4.282s
npminstall with cache 0m8.815s 0m7.492s 0m3.644s
npminstall --no-cache 0m10.279s 0m8.255s 0m3.932s
pnpm 0m13.509s 0m11.650s 0m4.443s
npm 0m28.171s 0m26.085s 0m8.219s
npm with cache 0m20.939s 0m19.415s 0m6.302s

pnpm benchmark

see https://github.com/pnpm/pnpm#benchmark

npminstall babel-preset-es2015 browserify chalk debug minimist mkdirp
    real    0m8.929s       user    0m5.606s       sys    0m2.913s
pnpm i babel-preset-es2015 browserify chalk debug minimist mkdirp
    real    0m12.998s      user    0m8.653s       sys    0m3.362s
npm i babel-preset-es2015 browserify chalk debug minimist mkdirp
    real    1m4.729s       user    0m55.589s      sys    0m23.135s

License

MIT

Contributors


fengmk2


dead-horse


gemwuu


semantic-release-bot


killagu


ibigbug


vagusX


afc163


yesmeck


popomore


we11adam


whatwewant


emma-owen


weihong1028


HomyeeKing


nightink


XadillaX


LeoYuan


cnlon


Moudicat


hanzhao


marcbachmann


MondoGao


snyk-bot


Solais


thonatos


atian25


tommytroylin


wssgcg1213


yibn2008


fossabot


hugohua


hyj1991


mansonchor


givingwu


Abreto

This project follows the git-contributor spec, auto updated at Sat Mar 25 2023 22:23:53 GMT+0800.

changelog

Changelog

7.12.0 (2023-12-18)

Features

  • add support for process.env.npminstall_cache (cherry-pick #471) (#472) (4c2cc3b)

7.11.1 (2023-09-20)

Bug Fixes

7.11.0 (2023-09-14)

Features

7.10.0 (2023-08-30)

Features

7.9.0 (2023-05-26)

Features

  • run scripts on background by default (#459) (18d9b9f)

7.8.0 (2023-05-02)

Features

7.7.0 (2023-05-02)

Features

7.6.1 (2023-04-20)

Bug Fixes

  • link peer deps should handle scope package path (#454) (8176d5d)

7.6.0 (2023-03-26)

Features

  • enforce "node:" prefix on require module (#452) (cb7a3b7)

7.5.2 (2023-03-03)

Bug Fixes

  • should not run prepare in a production or global package (#451) (8c5520d)

7.5.1 (2023-02-27)

Bug Fixes

  • link public hoist package to <workspaceRoot>/node_modules (#450) (ad7528f)

7.5.0 (2023-02-13)

Features

7.4.2 (2023-02-05)

Bug Fixes

  • show warn message when bin file not exists (#447) (0e3741a)

7.4.1 (2023-01-28)

Bug Fixes

  • ignore anti semver tips on <name>@* deps (#446) (317bcbb)

7.4.0 (2023-01-14)

Features

  • store all latest version packages to .store/node_modules (#443) (71fd1e6)

7.3.1 (2023-01-10)

Bug Fixes

7.3.0 (2023-01-08)

Features

7.2.2 (2023-01-07)

Bug Fixes

  • store packages on workspace root node_modules (#435) (b86b545)

7.2.1 (2023-01-06)

Bug Fixes

  • auto set INIT_CWD env on install scripts (#434) (d69cf2b)

7.2.0 (2023-01-05)

Features

7.1.0 (2023-01-02)

Features

  • try to set authorization from ~/.npmrc (#432) (631029b)

7.0.0 (2023-01-01)

⚠ BREAKING CHANGES

  • force set disableDedupe=true by default, say good bye to hoist.

Code Refactoring

  • Store package to node_modules/.store dir (#429) (6dd0b64)

6.6.2 / 2022-11-30

features

6.6.1 / 2022-11-11

fixes

6.6.0 / 2022-11-09

features

6.5.2 / 2022-10-17

fixes

6.5.1 / 2022-08-26

6.5.0 / 2022-07-18

others

6.4.0 / 2022-06-25

features

6.3.0 / 2022-06-05

others

6.2.1 / 2022-06-05

others

6.2.0 / 2022-05-16

features

others

6.1.0 / 2022-03-25

others

6.0.0 / 2022-03-24

features

5.7.3 / 2022-03-24

others

5.7.2 / 2022-03-23

fixes

5.7.1 / 2022-03-22

others

5.7.0 / 2022-03-21

features

5.6.1 / 2022-03-20

others

5.6.0 / 2022-03-20

others

5.5.0 / 2022-03-05

others

5.4.1 / 2022-02-08

fixes

others

5.4.0 / 2022-01-14

features

others

5.3.1 / 2021-12-01

fixes

5.3.0 / 2021-12-01

others

5.2.2 / 2021-11-22

fixes

others

5.2.1 / 2021-10-18

fixes

5.2.0 / 2021-10-18

features

5.1.2 / 2021-10-01

fixes

others

5.1.1 / 2021-09-27

fixes

others

5.1.0 / 2021-09-25

features

others

5.0.2 / 2021-08-12

fixes

5.0.1 / 2021-07-05

fixes

5.0.0 / 2021-07-02

features

4.11.0 / 2021-03-26

others

4.10.0 / 2020-10-30

features

fixes

4.9.1 / 2020-07-07

fixes

4.9.0 / 2020-06-29

features

4.8.0 / 2020-06-23

features

4.7.0 / 2020-01-14

features

4.6.0 / 2020-01-13

features

4.5.2 / 2019-12-15

fixes

4.5.1 / 2019-12-07

fixes

4.5.0 / 2019-12-07

others

4.4.0 / 2019-11-28

features

others

4.3.0 / 2019-10-10

features

4.2.0 / 2019-08-05

features

4.1.1 / 2019-06-10

fixes

4.1.0 / 2019-05-24

features

4.0.0 / 2019-05-08

fixes

  • [2688fa8] - fix: cnpm install error without user settings (#301) (M0D27 <i@0u0b.com>)

others

3.21.0 / 2019-04-28

features

others

3.20.2 / 2019-01-25

fixes

3.20.1 / 2019-01-05

fixes

3.20.0 / 2019-01-03

features

3.19.1 / 2018-12-28

fixes

3.19.0 / 2018-12-27

features

3.18.0 / 2018-12-24

features

3.17.0 / 2018-12-13

features

3.16.1 / 2018-12-12

fixes

others

3.16.0 / 2018-11-22

features

3.15.0 / 2018-11-08

features

  • [8f94a43] - feat: support install clientDependencies / buildDependencies / isomorphicDependencies (#281) (Yiyu He <dead_horse@qq.com>)

3.14.0 / 2018-10-24

features

3.13.0 / 2018-10-24

features

others

3.12.0 / 2018-09-19

features

3.11.0 / 2018-07-31

others

3.10.0 / 2018-07-19

features

3.9.2 / 2018-07-11

fixes

3.9.1 / 2018-07-11

fixes

3.9.0 / 2018-07-11

features

3.8.0 / 2018-06-21

features

3.7.0 / 2018-06-05

features

3.6.2 / 2018-05-22

fixes

3.6.1 / 2018-05-21

fixes

3.6.0 / 2018-05-17

features

3.5.0 / 2018-04-19

features

others

3.4.0 / 2018-04-14

features

fixes

3.3.0 / 2017-12-25

features

3.2.1 / 2017-10-26

fixes

3.2.0 / 2017-10-25

features

3.1.4 / 2017-09-06

fixes

3.1.3 / 2017-09-05

fixes

others

3.1.2 / 2017-09-05

fixes

others

3.1.1 / 2017-08-02

  • fix: add proxy options on getBinaryMirrors (#243)

3.1.0 / 2017-08-01

  • feat: support --proxy (#242)

3.0.1 / 2017-06-08

  • fix: warning when package name unmatch from git (#238)

3.0.0 / 2017-06-05

  • test: ignore node-gyp.test.js on win32
  • fix: set accept application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, /
  • test: add test on node 8
  • fix: merge local package.json file to realPkg
  • feat: [BREAKING_CHANGE] less json requests, more faster

2.30.1 / 2017-05-23

  • chore: rename await (#234)
  • fix: package.json to reduce vulnerabilities (#232)

2.30.0 / 2017-05-09

  • feat: enable disk cache strict event on production env (#230)
  • feat: recently update display latest version (#228)

2.29.2 / 2017-04-27

  • fix: remove starting dot to ensure webpack2 work (#227)

2.29.1 / 2017-03-29

  • fix: store path starts with _{name} (#223)

2.29.0 / 2017-03-29

  • feat: support mirror github.com in pngquant-bin (#222)

2.28.0 / 2017-03-28

  • feat: store path starts with name (#220)

2.27.1 / 2017-03-28

  • fix: emit download cache await event if donefile exists (#219)

2.27.0 / 2017-03-27

  • feat: record all installed packages' versions
  • refactor: split install function into pieces
  • fix: should continue install when optional dep error (#217)

2.26.4 / 2017-03-08

  • fix: use readJSON instead of require (#214)
  • test: remove ghost install test (#213)

2.26.3 / 2017-03-08

  • fix: ensure peer dependencies flatten (#212)

2.26.2 / 2017-02-27

  • fix: peer dependency duplicated with dependency (#209)

2.26.1 / 2017-02-27

  • fix: use ancestor spec instead of undefined (#208)

2.26.0 / 2017-02-25

  • feat: improve peerDependencies' lookup (#207)
  • feat: typescript definitions always flatten (#206)

2.25.0 / 2017-02-24

  • feat: only allow install from registry by a new flag (#203)

2.24.1 / 2017-02-23

  • fix: support fsevents mirror (#201)

2.24.0 / 2017-02-13

  • feat: support link pkg@spec (#199)

2.23.0 / 2017-02-13

  • feat: n.x and n.m.x always use flatten (#200)

2.22.1 / 2017-02-10

  • fix: use ancestor's dependence even version not change (#198)

2.22.0 / 2017-02-09

  • feat: lookup ancestor's dependencies (#197)

2.21.0 / 2017-02-07

  • feat: support engines.node version checker (#195)

2.20.0 / 2017-02-04

  • feat: enable cpu and memory usage traces by --trace (#194)

2.19.2 / 2017-02-03

  • fix: get max satisfy version from root dependencies instead of * (#193)

2.19.1 / 2017-02-03

  • fix: dont show debug log when no bin to link
  • fix: should limit sub package install parallel

2.19.0 / 2017-02-03

  • test: ignore stdout assert on custom mirror
  • fix: should stop spinner when install fail
  • feat: support parallel execution

2.18.2 / 2017-01-26

  • fix: auto fix invaild tgz file (#189)

2.18.1 / 2017-01-25

  • fix: should not enable ora when detail enable (#187)

2.18.0 / 2017-01-25

  • feat: add install and link tasks progresses (#186)

2.17.0 / 2017-01-25

  • feat: add .npminstall.done file on node_modules after install success (#185)

2.16.1 / 2017-01-18

  • fix: update cli should ignore package names args (#182)

2.16.0 / 2016-12-26

  • test: ci tgz download from orginal npm registry
  • fix: keep npm_rootpath exits on link cmd
  • test: use registry env
  • fix: don't retry to get mirror latest package
  • deps: upgrade agentkeepalive to 3.0.0 (#177)

2.15.0 / 2016-12-14

  • feat: more debug info (#175)

2.14.0 / 2016-12-14

  • feat: should get with retry on all error scene (#174)

2.13.3 / 2016-11-30

  • fix: support npmlink => npm link to global (#172)

2.13.2 / 2016-11-23

  • chore(package): update uuid to version 3.0.0 (#170)

2.13.1 / 2016-11-23

  • fix: convert ~ to HOME

2.13.0 / 2016-11-22

  • feat: support $ npmlink <folder> (#169)

2.12.2 / 2016-11-21

  • fix: install --save from folder should use real pkg info (#168)

2.12.1 / 2016-11-18

  • refactor: global install root dir don't use link (#167)

2.12.0 / 2016-11-15

  • fix: should force set detail on production mode (#165)

2.11.2 / 2016-11-04

  • feat: display the entire dependencies path when download error
  • fix: install package from git/remote/hosted with save options

2.11.1 / 2016-11-03

  • fix: auto set npm_config_cache = cacheDir (#161)

2.11.0 / 2016-11-03

  • feat: add npm_rootpath to env (#160)
  • refactor: use ENVS from binary-mirror-config (#158)

2.10.0 / 2016-10-27

  • test: add node v7
  • feat: support raw.github.com mirror

2.9.5 / 2016-10-25

  • fix: limit max 10 sockets per host (#153)

2.9.4 / 2016-10-22

  • refactor: better log interface (#150)

2.9.3 / 2016-10-22

  • fix: peerDependencies warning (#149)

2.9.2 / 2016-10-19

  • feat: show ancestors version (#147)

2.9.1 / 2016-10-19

  • fix: global prefix support ~/foo/path (#146)

2.9.0 / 2016-10-19

  • feat: better log (#142)

2.8.0 / 2016-10-17

  • feat: list recently update packages (#144)
  • fix: should retry on http response timeout (#143)

2.7.0 / 2016-10-12

  • feat: keep relation (#138)

2.6.0 / 2016-10-12

  • feat: support npm update feat (#133)

2.5.0 / 2016-10-12

  • feat: show deprecate message after install step (#134)

2.4.1 / 2016-09-22

  • fix: support uninstall -g (#130)

2.4.0 / 2016-09-20

  • feat: use npminstall instead of npm install on runscript (#129)

2.3.1 / 2016-09-19

  • fix: binary mirror could be http protocol (#128)

2.3.0 / 2016-09-19

  • feat: support --tarball-url-mapping=json-string (#127)

2.2.4 / 2016-09-18

  • fix: add missing npm_config_argv env (#126)

2.2.3 / 2016-09-18

  • fix: globalOptions.console undefined (#125)

2.2.2 / 2016-09-13

  • fix: don't run prepublish on production mode (#123)

2.2.1 / 2016-09-08

  • fix: fix package.json permission (#120)

2.2.0 / 2016-09-08

  • fix: retry get if registry return 50x (#119)
  • fix: npm registry scoped permission error (#118)
  • fix: use normalize-git-url to parse git url (#117)
  • feat: auto set npm_package_* env on run script (#116)

2.1.1 / 2016-09-01

  • fix: auto add EOL on --save (#114)

2.1.0 / 2016-08-24

  • feat: should follow npm install version (#111)
  • test: ignore eslint-plugin-html.test.js on windows

2.0.2 / 2016-08-03

  • fix: store dir name should ends with name (#106)
  • Release 2.0.1

2.0.1 / 2016-08-02

  • fix: improve install error message tips (#105)

2.0.0 / 2016-07-28

  • fix: add node-gyp-bin to package.json files
  • fix: ensure always can find node-gyp (#103)
  • feat: support custom china mirror url (#101)
  • fix: global storeDir must ends with node_modules (#99)
  • refactor: remove .npminstall (#98)

1.14.0 / 2016-07-17

  • chore: adapte eslint-config-egg@3 (#96)
  • feat: support uninstall (#95)

1.13.0 / 2016-07-04

  • feat: fetch from regsitry when not install from package.json (#94)

1.12.1 / 2016-06-28

  • fix: remove done file when install failed (#92)

1.12.0 / 2016-06-26

  • fix: add npm_execpath env in pre/post install script (#91)
  • feat: support flow-bin mirror (#87)

1.11.1 / 2016-06-26

  • fix: forbidden licenses just show tips (#89)

1.11.0 / 2016-06-23

  • feat: support forbidden-license (#88)

1.10.1 / 2016-05-25

  • fix: remove console.error (#86)

1.10.0 / 2016-05-25

  • feat: support global install prefix argv (#85)

1.9.0 / 2016-05-25

  • feat: retry 3 times on shasum not match and 50x error (#84)

1.8.3 / 2016-05-24

  • fix: don't touch cache file when use sudo (#83)

1.8.2 / 2016-05-10

  • fix: utils.forceSymlink precheck dest dir exists (#82)

1.8.1 / 2016-05-08

  • fix: anti os match bug (#81)

1.8.0 / 2016-05-08

  • feat: support package.json#os property (#80)

1.7.0 / 2016-05-06

  • feat: 打印出 deprecate 模块所在位置 (#78)

1.6.5 / 2016-05-04

  • fix: add retry to get binary-mirror-config/latest (#77)
  • fix: install when bundle dependencies not exists (#76)

1.6.4 / 2016-04-28

  • fix: add node-gyp (#75)

1.6.3 / 2016-04-14

  • fix: get bianry mirror package (#71)

1.6.2 / 2016-04-13

  • fix: trim string before json parse it (#70)

1.6.1 / 2016-04-05

  • fix: chromedriver cdn url change

1.6.0 / 2016-04-01

  • feat: add referer for registry access log

1.5.3 / 2016-03-30

  • Fix install from git branch

1.5.2 / 2016-03-29

  • fix: use correct name and version when installing from git

1.5.1 / 2016-03-29

  • fix: sort pkg.dependencies

1.5.0 / 2016-03-28

  • chore: fix eslint
  • chore: add ignore-scripts in readme
  • feat: support ignore-scripts

1.4.2 / 2016-03-26

  • fix: fix global path on windows

1.4.1 / 2016-03-17

  • Can install from a revision hash now.

1.4.0 / 2016-03-16

  • feat: link root packages to storeDir/node_modules

1.3.2 / 2016-03-12

  • fix: try to find the max satisfy version (n.x) in grandfather's deps

1.3.1 / 2016-03-09

  • fix: fsevents use binary-mirror-config too

1.3.0 / 2016-03-09

1.2.5 / 2016-03-07

  • fix: add _from, _resolved back to package.json

1.2.4 / 2016-03-06

  • fix: global install must reinstall the whole package

1.2.3 / 2016-03-05

  • test: add test for global install
  • fix: install package@tag -g should work

1.2.2 / 2016-03-03

  • fix: support shortcut install options

1.2.1 / 2016-03-03

  • test: fix same tarball test case
  • fix: add prepublish script after postinstall
  • test: add pnpm benchmark scripts
  • feat: support npm_china env
  • feat: support read strict-ssl from npm config
  • chore: fix readme

1.2.0 / 2016-03-03

  • feat: record post install scripts' cost
  • refactor: collect all post install scripts

1.1.1 / 2016-03-01

  • fix: wait package install completed

1.1.0 / 2016-02-29

  • feat: add --help
  • refactor: pass mirror env from bin, add --china options

1.0.8 / 2016-02-29

  • fix: use registry.npmjs.com by default on bin/install.js

1.0.7 / 2016-02-27

  • fix: --foo=bar should use npm_config_ env prefix name

1.0.6 / 2016-02-27

  • fix: ignore Path env on Windows
  • fix: auto set npm env just like npm cli does
  • chore: add support features

1.0.5 / 2016-02-26

  • fix: cleanup before link, fixes #22

1.0.4 / 2016-02-25

  • fix: separate installed and existed

1.0.3 / 2016-02-25

  • chore: add different with npm
  • test: add npm_registry env for ci
  • feat(bin): support --save, --save-dev and --save-optional

1.0.2 / 2016-02-24

  • feat: support link to specific binDir
  • fix: use options.cache
  • fix: local module relative path
  • fix: try nodeModulePaths to find peerDependencies
  • chore: add install to specific directory in readme
  • feat: support install to target dir

1.0.1 / 2016-02-23

  • refactor: change store structure

1.0.0 / 2016-02-21

  • test: add link again test
  • refactor: try install from https git url first
  • test: use full path of _mocha
  • test: travis install git
  • fix: fix review bugs
  • chore: lint
  • fix: download pacakge count
  • fix: skip link test in win32
  • feat: support git and hosted
  • feat: support remote pacakges
  • fix: uniq by version
  • test: add missing folder
  • test: add assert message
  • test: fix test case description
  • feat: support install from local folder or tallbars
  • feat: add total json count
  • doc: add verbose benchmark histroy
  • refactor: download npm

0.7.0 / 2016-02-18

  • feat: cache by range max bound

0.6.0 / 2016-02-17

  • test: fix mock download error tests
  • benchmark: add npminstall with cache
  • test: download from orginal cdn on travis ci env
  • feat: add local cache dir to store tarball files

0.5.1 / 2016-02-16

  • fix: make sure link latest version parent dir exists
  • feat: support process.env.NODE_ENV and add --version command
  • fix: only remove done file when install error

0.5.0 / 2016-02-15

  • feat: add download packages count
  • refactor: add OPERADRIVER_CDNURL env
  • feat: add download speed

0.4.0 / 2016-02-14

  • refactor: link latest version to .npminstall/node_modules
  • test: add more projects to test/git.sh
  • test: add relink exists file test case
  • fix: optionalDependencies typo
  • fix: relink exists link file should work
  • fix: ignore hosted type package
  • fix: ignore cleanup error
  • test: add more project test case
  • feat: link every module latest version to root node_modules

0.3.0 / 2016-02-08

  • fix: add retry when GET request throw ECONNRESET error
  • feat: add peerDependencies validate

0.2.0 / 2016-02-06

  • test: add codecov for appveyor
  • fix: use cmd-shim for Windows linkBin
  • test: add more packages on test/all.js
  • feat: runScript support Windows
  • test: add appveyor ci
  • refactor: tzgfile do not store on dist

0.1.0 / 2016-02-04

  • feat: bin/install.js support --production flag
  • fix: bundledDependencies also can spelled as "bundleDependencies"
  • feat: support production mode
  • feat: cleanup when install failed
  • feat: support optional dependencies
  • refactor: install
  • deps: mkdirp
  • fix: fix event memory leak warning
  • feat: display depracated infomation
  • feat: support name@spec
  • fix: link bundledependencies' bin
  • chore: use mz/fs only
  • deps: use mkdirp
  • fix: fix log time
  • refactor: use co-parallel, add benchmark
  • fix: default store dir in node_modules

0.0.4 / 2016-02-03

  • fix: co should be dependencies