@lucavb/check-peer-dependencies
v4.3.4
Published
Checks peer dependencies of the current package. Offers solutions for any that are unmet.
Maintainers
Readme
@lucavb/check-peer-dependencies
Checks peer dependencies of the current NodeJS package. Offers solutions for any that are unmet.
Maintained fork of check-peer-dependencies by Chris Thielen. Published as @lucavb/check-peer-dependencies on npm. Releases are automated via GitHub Actions on master.
This utility will recursively find all peerDependencies in your project's dependencies list.
It checks if you have installed a package that meets the required peer dependency versions.
If any peer dependencies are unmet, it will search for a compatible version to install.
Note: you must run npm install or yarn first in order to install all normal dependencies.
usage:
npx @lucavb/check-peer-dependencies [--yarn|--npm] [--install] [--help]Options:
-h, --help Print usage information [boolean]
--version Show version number [boolean]
--yarn Force yarn package manager [boolean]
--npm Force npm package manager [boolean]
--orderBy Order the output by depender or dependee
[choices: "depender", "dependee"] [default: "dependee"]
--debug Print debugging information
[boolean] [default: false]
--verbose Prints every peer dependency, even those that
are met [boolean] [default: false]
--ignore package name to ignore (may specify multiple)
[array] [default: []]
--runOnlyOnRootDependencies Run tool only on package root dependencies
[boolean] [default: false]
--findSolutions Search for solutions and print package
installation commands
[boolean] [default: false]
--install Install missing or incorrect peerDependencies
[boolean] [default: false]
--ignoreOptional Ignore optional peer dependencies entirely,
even if installed at a mismatched version
[boolean] [default: false]Development
npm ci
npm run build
node dist/cli.jsDry-run a release locally (requires GITHUB_TOKEN):
npx semantic-release --dry-runInstalling peerDependencies as devDependencies
If a package has a peerDependency that should be installed as a devDependency by,
it can list the package name in "peerDevDependencies".
This is not a standard and is only understood by this check-peer-dependencies.
{
"name": "somepackage",
"peerDependencies": {
"react": "16.x",
"react-dom": "16.x",
"typescript": "~3.8.0",
"eslint": "*"
},
"peerDevDependencies": ["typescript", "eslint"]
}Example outputs:
No problems
~/projects/uirouter/sample-app-react master
❯ npx check-peer-dependencies
✅ All peer dependencies are metMissing peer dependency, solution found
~/projects/uirouter/angular-hybrid master ⇣
❯ npx check-peer-dependencies
❌ @uirouter/[email protected] requires @angular/router ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 (@angular/router is not installed)
Searching for solutions:
yarn add @angular/[email protected]Incorrect peer dependencies, some solutions found
❯ npx check-peer-dependencies
❌ @uirouter/[email protected] requires @angular/common ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 (9.0.0-next.9 is installed)
❌ @uirouter/[email protected] requires @angular/core ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 (9.0.0-next.9 is installed)
❌ @uirouter/[email protected] requires @angular/router ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 (9.0.0-next.9 is installed)
Searching for solutions:
❌ Unable to find a version of @angular/common that satisfies the following peerDependencies: 9.0.0-next.9 and ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
❌ Unable to find a version of @angular/core that satisfies the following peerDependencies: 9.0.0-next.9 and ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
yarn upgrade @angular/[email protected]