Lints your NPM dependencies
and devDependencies
reporting which node modules are
- missing and should be added to your
dependencies
ordevDependencies
- unused and should be removed from your
dependencies
ordevDependencies
- mislabeled and should be moved from
dependencies
todevDependencies
or vice versa
Supported on Node.js versions 12, 14, 16
$ npm install dependency-lint
$ dependency-lint
To automatically remove unused dependencies and move mislabeled dependencies:
$ dependency-lint --auto-correct
dependency-lint
compares the node modules listed in your package.json
and
the node modules it determines are used. A node module is used if:
- it is required in a javascript file (or a file that transpiles to javascript)
- one of its executables is used in a script in your
package.json
or in a shell script
Since this does not cover all the possible ways that a node module can be used,
dependency-lint
can be configured
to ignore specific errors. Please create an
issue
anytime you need to use this, so we can discuss new ways to determine if and
how a node module is used.
Please see here for an explanation of all the options.
Custom configuration should be placed at dependency-lint.yml
in your project directory.
You can create a configuration file by running
dependency-lint --generate-config
Any options not set in your configuration file will be given there default value.
Three formatters are available and can be switched between with the --format
option
dependency-lint --format <format>
minimal
(default) - prints only the modules with errorssummary
- prints all modulesjson
- prints JSON of the form{dependencies, devDependencies}
where each is array of objects with the keysname
- name of the modulefiles
- list of the files that require the module or execute the modulescripts
- list of scripts in yourpackage.json
that execute the moduleerror
- null or one of the following strings: "missing", "should be dependency", "should be dev dependency", "unused"errorIgnored
- if dependency lint has been configured to ignore this error.