dylang/npm-check is one of the open-source repositories TopGit tracks, currently at 6.6k stars, written primarily in JavaScript. Check for outdated, incorrect, and unused dependencies.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Check for outdated, incorrect, and unused dependencies.
Features
Tells you what's out of date.
Provides a link to the package's documentation so you can decide if you want the update.
Kindly informs you if a dependency is not being used in your code.
Works on your globally installed packages too, via -g.
Interactive Update for less typing and fewer typos, via -u.
Supports public and private @scoped/packages.
Supports ES6-style import from syntax.
Upgrades your modules using your installed version of npm, including the new npm@3, so dependencies go where you expect them.
Works with any public npm registry, private registries, and alternate registries like Sinopia.
Does not query registries for packages with private: true in their package.json.
Emoji in a command-line app, because command-line apps can be fun too.
Works with npm@2 and npm@3, as well as newer alternative installers like ied and pnpm.
Requirements
Node >= 10.9.0
On the command line
This is the easiest way to use npm-check.
Install
npm install -g npm-check
Use
npm-check
The result should look like the screenshot, or something nice when your packages are all up-to-date and in use.
When updates are required it will return a non-zero response code that you can use in your CI tools.
Options
Usage
$ npm-check <path> <options>
Path
Where to check. Defaults to current directory. Use -g for checking global modules.
Options
-u, --update Interactive update.
-y, --update-all Uninteractive update. Apply all updates without prompting.
-g, --global Look at global modules.
-s, --skip-unused Skip check for unused packages.
-p, --production Skip devDependencies.
-d, --dev-only Look at devDependencies only (skip dependencies).
-i, --ignore Ignore dependencies based on succeeding glob.
-E, --save-exact Save exact version (x.y.z) instead of caret (^x.y.z) in package.json.
--specials List of depcheck specials to include in check for unused dependencies.
--no-color Force or disable color output.
--no-emoji Remove emoji support. No emoji in default in CI environments.
--debug Show debug output. Throw in a gist when creating issues on github.
Examples
$ npm-check # See what can be updated, what isn't being used.
$ npm-check ../foo # Check another path.
$ npm-check -gu # Update globally installed modules by picking which ones to upgrade.
-u, --update
Show an interactive UI for choosing which modules to update.
Automatically updates versions referenced in the package.json.
Based on recommendations from the npm team, npm-check only updates using npm install, not npm update.
To avoid using more than one version of npm in one directory, npm-check will automatically install updated modules
using the version of npm installed globally.
Update using ied or pnpm
Set environment variable NPM_CHECK_INSTALLER to the name of the installer you wish to use.
Updates your dependencies like --update, just without any prompt. This is especially useful if you want to automate your dependency updates with npm-check.
-g, --global
Check the versions of your globally installed packages.
If the value of process.env.NODE_PATH is set, it will override the default path of global node_modules returned by package global-modules.
Tip: Use npm-check -u -g to do a safe interactive update of global modules, including npm itself.
-s, --skip-unused
By default npm-check will let you know if any of your modules are not being used by looking at require statements
in your code.
This option will skip that check.
This is enabled by default when using global or update.
-p, --production
By default npm-check will look at packages listed as dependencies and devDependencies.
This option will let it ignore outdated and unused checks for packages listed as devDependencies.
-d, --dev-only
Ignore dependencies and only check devDependencies.
This option will let it ignore outdated and unused checks for packages listed as dependencies.
-i, --ignore
Ignore dependencies that match specified glob.
$ npm-check -i babel-* will ignore all dependencies starting with 'babel-'.
-E, --save-exact
Install packages using --save-exact, meaning exact versions will be saved in package.json.
Applies to both dependencies and devDependencies.
--specials
Check special (e.g. config) files when looking for unused dependencies.
$ npm-check --specials=bin,webpack will look in the scripts section of package.json and in webpack config.
See https://github.com/depcheck/depcheck#special for more information.
--color, --no-color
Enable or disable color support.
By default npm-check uses colors if they are available.
--emoji, --no-emoji
Enable or disable emoji support. Useful for terminals that don't support them. Automatically disabled in CI servers.
--spinner, --no-spinner
Enable or disable the spinner. Useful for terminals that don't support them. Automatically disabled in CI servers.
API
The API is here in case you want to wrap this with your CI toolset.
This is called --production on the command line to match npm.
default is false
devOnly
Ignore dependencies and only check devDependencies.
default is false
ignore
Ignore dependencies that match specified glob.
default is []
saveExact
Update package.json with exact version x.y.z instead of semver range ^x.y.z.
default is false
debug
Show debug output. Throw in a gist when creating issues on github.
default is false
cwd
Override where npm-check checks.
default is process.cwd()
specials
List of depcheck special parsers to include.
default is ''
currentState
The result of the promise is a currentState object, look in state.js to see how it works.
You will probably want currentState.get('packages') to get an array of packages and the state of each of them.
Each item in the array will look like the following:
{
moduleName: 'lodash', // name of the module.
homepage: 'https://lodash.com/', // url to the home page.
regError: undefined, // error communicating with the registry
pkgError: undefined, // error reading the package.json
latest: '4.7.0', // latest according to the registry.
installed: '4.6.1', // version installed
isInstalled: true, // Is it installed?
notInstalled: false, // Is it installed?
packageWanted: '4.7.0', // Requested version from the package.json.
packageJson: '^4.6.1', // Version or range requested in the parent package.json.
devDependency: false, // Is this a devDependency?
usedInScripts: undefined, // Array of `scripts` in package.json that use this module.
mismatch: false, // Does the version installed not match the range in package.json?
semverValid: '4.6.1', // Is the installed version valid semver?
easyUpgrade: true, // Will running just `npm install` upgrade the module?
bump: 'minor', // What kind of bump is required to get the latest, such as patch, minor, major.
unused: false // Is this module used in the code?
},
You will also see this if you use --debug on the command line.
RC File Support
Additional options can be sent to the depcheck process. See depcheck API. Create a .npmcheckrc{.json,.yml,.js} file and set the depcheck options under depcheck property.
For example, to skip packages for unused check, but still want them in the outdated check (so can't use the --ignore option):
npm outdated - awkward output, requires --depth=0 to be grokable.
david - does not work with private registries.
update-notifier - for single modules, not everything in package.json.
depcheck - only part of the puzzle. npm-check uses depcheck.
About the Author
Hi! Thanks for checking out this project! My name is Dylan Greene. When not overwhelmed with my two young kids I enjoy contributing
to the open source community. I'm also a tech lead at Opower.
Here's some of my other Node projects:
Name
Description
npm Downloads
grunt‑notify
Automatic desktop notifications for Grunt errors and warnings. Supports OS X, Windows, Linux.
shortid
Amazingly short non-sequential url-friendly unique id generator.
space‑hogs
Discover surprisingly large directories from the command line.
rss
RSS feed generator. Add RSS feeds to any project. Supports enclosures and GeoRSS.
grunt‑prompt
Interactive prompt for your Grunt config using console checkboxes, text input with filtering, password fields.
xml
Fast and simple xml generator. Supports attributes, CDATA, etc. Includes tests and examples.
changelog
Command line tool (and Node module) that generates a changelog in color output, markdown, or json for modules in npmjs.org's registry as well as any public github.com repo.
grunt‑attention
Display attention-grabbing messages in the terminal
observatory
Beautiful UI for showing tasks running on the command line.
anthology
Module information and stats for any @npmjs user
grunt‑cat
Echo a file to the terminal. Works with text, figlets, ascii art, and full-color ansi.
This list was generated using anthology.
License
Copyright (c) 2016 Dylan Greene, contributors.
Released under the MIT license.
Screenshots are CC BY-SA (Attribution-ShareAlike).
The most recent commit recorded on dylang/npm-check was 10 days ago, based on the GitHub push timestamp. The repository has 234 forks — one of the better signals of community interest.
How many stars does dylang/npm-check have?
dylang/npm-check has 6.6k GitHub stars — refresh the page for the live number, or check github.com/dylang/npm-check. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is dylang/npm-check open source?
Yes — dylang/npm-check ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/dylang/npm-check.
What is dylang/npm-check?
dylang/npm-check (dylang/npm-check) is a JavaScript project on GitHub. From the project's own README: Check for outdated, incorrect, and unused dependencies.
Where do I read more about dylang/npm-check?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/dylang/npm-check is the definitive source.
Read full README in the tab above.
Still deciding about npm-check?
One click hands the question to an AI along with this page — see what it says about npm-check.