1.0.0 • Published 8 years ago
npm-list-problems v1.0.0
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
relativePathargument. If unspecified, the method will identify problems for the current directory - Returns an array of problem objects
Problem objects
There are
6types of errors thatnpm listreturns (defined in thegetLitemethod innpm'sls.js)- Extraneous dependency
- Missing dependency
- Missing peer dependency
- Invalid dependency
- Dependency error
Each of these error types will produce differently formatted
Problemobjects
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
import getProblems from 'npm-list-problems';
// defaults to current directory
getProblems().then(problems => console.log(problems));
// get dependency problems for relative path
getProblems('../some/relative/directory').then(problems => console.log(problems));
// 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' }
// ]1.0.0
8 years ago