npm-list-problems
Introduction
npm list
essentially outputs your dependency tree structure.
It also outputs any errors associated with your dependency tree like extraneous or missing dependencies.
Sometimes, it would be useful to programmatically retrieve this list of problems (for example, failing a build if any extraneous errors are found).
Installation
npm install npm-list-problems --save
API
getProblems(relativePath = null)
- Takes an optional
relativePath
argument. If unspecified, the method will identify problems for the current directory - Returns an array of problem objects
Problem
objects
-
There are
6
types of errors thatnpm list
returns (defined in thegetLite
method innpm
'sls.js
)- Extraneous dependency
- Missing dependency
- Missing peer dependency
- Invalid dependency
- Dependency error
-
Each of these error types will produce differently formatted
Problem
objects
Extraneous dependency
package: 'some package name' version: 'some package version' path: 'some path to package' type: 'EXTRANEOUS_DEPENDENCY'
Missing dependency
package: 'some package name' version: 'some package version' requiredBy: package: 'some other package' version: 'some other package version' type: 'MISSING_DEPENDENCY'
Missing peer dependency
package: 'some package name' version: 'some package version' requiredBy: package: 'some other package' version: 'some other package version' type: 'MISSING_PEER_DEPENDENCY'
Invalid dependency
package: 'some package name' version: 'some package version' path: 'some path to package' type: 'INVALID_DEPENDENCY'
Dependency error
path: 'some path to package' message: 'some error message' type: 'DEPENDENCY_ERROR'
Usage
; // defaults to current directory; // get dependency problems for relative path; // both could output something like// [// { package: 'object-assign',// version: '4.1.1',// requiredBy: { package: 'react-dom', version: '16.2.0' },// type: 'MISSING_DEPENDENCY' },// { package: 'prop-types',// version: '15.6.0',// requiredBy: { package: 'react-dom', version: '16.2.0' },// type: 'MISSING_DEPENDENCY' }// ]