npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

npm-up

v2.7.0

Published

Check the latest versions of dependencies on npm gracefully, and do whatever you want.

Downloads

44

Readme

npm-up

Check the latest versions of dependencies on npm gracefully, and do whatever you want.

NPM version Downloads Deps Build Status Build status

Installation

npm i npm-up -g

Features

  • 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.

Usage

  1. Run npm-up [options] in a project directory with a package.json file. For example: npm-up -iw. If no options are configured, it will only check the latest version and do nothing but display.

  2. Run npm-up -g to check globally npm packages.

  3. Run npm-up -A to check all projects in sub directories.

commands:

clean   clean cache
dump    dump cache

Options:

-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

Use a mirror registry

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!

Version Patterns

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

Rules

  1. Take 3 versions about one package into consideration:

    • Version declared in package.json.
    • Version of the package installed.
    • The latest version of the package.
  2. If a package is not installed, only package.json will be updated, and the package itself won't be installed.

  3. 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.

  4. The prefix, such as ^ ~ > <, of the version will be preserved when written back, unless flag --lock is set.

  5. If an installed package's version is different from the version declared, there comes a warning.

  6. Installed version is preferred.

Roadmap

  1. Use a config file to provide some persist options, like npmrc, we can have a real npmuprc.

License

MIT@Jingchen Zhao