Check the latest versions of dependencies on npm gracefully, and do whatever you want.
npm i npm-up -g
- Much faseter than npm.
- Do not depend on a local npm, much smaller.
- Check the latest versions of dependencies either locally or gloablly, and update
package.json
.- dependencies
- devDependencies
- optionalDependencies
- Install latest modules.
- Reasonable warnings for inconsistency.
- Use a mirror registy to speed up, especially for Chinese users.
- Cache to speed up repeated operations.
- Designed for OCD.
-
Run
npm-up [options]
in a project directory with apackage.json
file. For example:npm-up -iw
.
If no options are configured, it will only check the latest version and do nothing but display. -
Run
npm-up -g
to check globally npm packages. -
Run
npm-up -A
to check all projects in sub directories.
clean clean cache
dump dump cache
-V, --version output the version number
-g, --global Check global packages
-A, --All Check all projects in sub directories, depth is 1
-w, --writeBack Write updated version back to package.json
-i, --install Install the latest version of the packages
-l, --lock Use specific versions in package.json, with no ranges. (except *)
--lock-all Lock, even for * version
-a, --all Shortcut for -wil
-m, --mirror <mirror host or name> Use a mirror registry host
--no-cache Disable version cache
--no-warning Disable warning
-d, --dep Check dependencies only
-D, --dev Check devDependencies only
-O, --optional Check optionalDependencies only
-c, --cwd <cwd> Set current working directory
-L, --logLevel <level> Set loglevel for npm, default is error
-t, --tag <tag> Dist-tag used as the version to be updated
-e, --exclude <list> Excluded packages list, split by comma or space
-o, --only <list> Included packages list, split by comma or space
-p --exclude-locked Exclude all locked packages
-h, --help output usage information
First of all, You can use something like
npm config set registry http://registry.npm.taobao.org
to set a npm registry globally to speed up npm's requests, such as version searching and package downloading, especially for Chinese users.
However, it may cause some trouble (you can't publish unless using -reg
every time, because a mirror is usually read-only).
In npm-up
- You can use a built-in host with name:
npm-up -m taobao # also suport cnpmjs, npm (official)
- or give a specific hostname
npm-up -m http://registry.npm.taobao.org
npm-up -m registry.npm.taobao.org # http:// is optional
For Chinese users, use
-m taobao
to fly up!
Fully support semantic versions and tags. Eg:
*
^1.5.4
~2.3.0
>= 4.4.5
0.9.7
0.5.0-alpha1
'' //regard as *
latest // dist-tag
Notice that a ranges version may be overridden by Caret Ranges(^) when written back, and will be updated only when the latest version is greater than all the versions possible in the range.
>= 1.0.0 <= 1.5.4 // Version Range
1.2 - 2.3.4 // Hyphen Ranges
1.x // X-Ranges
- [OCD design] However, the semantic meaning of the ranges may somehow be ignored, because I just want the latest version.
- If the version declared in the
package.json
is not recognizable, the corresponding package will be excluded. - More info about version: semver
-
Take 3 versions about one package into consideration:
- Version declared in
package.json
. - Version of the package installed.
- The latest version of the package.
- Version declared in
-
If a package is not installed, only
package.json
will be updated, and the package itself won't be installed. -
If the version declared is
*
, it will not be overwritten, even when the flag--lock
is set. If you really want to change it, use--lock-all
flag. -
The prefix, such as
^ ~ > <
, of the version will be preserved when written back, unless flag--lock
is set. -
If an installed package's version is different from the version declared, there comes a warning.
-
Installed version is preferred.
- Use a config file to provide some persist options, like npmrc, we can have a real npmuprc.
MIT@Jingchen Zhao