npm-check-unused
Check for unused dependencies.
This is the easiest way to use npm-check-unused
.
$ npm install -g npm-check-unused
$ npm-check-unused
Usage
$ npm-check-unused <path> <options>
Path
Where to check. Defaults to current directory.
Options
-p, --production Skip devDependencies.
-d, --dev-only Look at devDependencies only (skip dependencies).
-i, --ignore Ignore dependencies based on succeeding glob.
--specials List of depcheck specials to include in check for unused dependencies.
--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-unused # See what isn't being used.
$ npm-check-unused ../foo # Check another path.
By default npm-check
will look at packages listed as dependencies
and devDependencies
.
This option will let it ignore packages listed as devDependencies
.
Ignore dependencies
and only check devDependencies
.
This option will let it ignore packages listed as dependencies
.
Ignore dependencies that match specified glob.
$ npm-check-unused -i babel-*
will ignore all dependencies starting with 'babel-'.
Check special (e.g. config) files when looking for unused dependencies.
$ npm-check-unused --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.
Enable or disable emoji support. Useful for terminals that don't support them. Automatically disabled in CI servers.
Enable or disable the spinner. Useful for terminals that don't support them. Automatically disabled in CI servers.
The API is here in case you want to wrap this with your CI toolset.
const npmCheck = require('npm-check');
npmCheck(options)
.then(currentState => console.log(currentState.get('packages')));
- Ignore
devDependencies
. - This is called
--production
on the command line to matchnpm
. - default is
false
- Ignore
dependencies
and only checkdevDependencies
. - default is
false
- Ignore dependencies that match specified glob.
- default is
[]
- Show debug output. Throw in a gist when creating issues on github.
- default is
false
- Override where
npm-check
checks. - default is
process.cwd()
- List of
depcheck
special parsers to include. - default is
''
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.
- 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-unused uses depcheck.
Copyright (c) 2018 Nfer Zhuang, contributors.
Released under the MIT license.
Screenshots are CC BY-SA (Attribution-ShareAlike).