A CLI tool to check and manage dependencies across packages in a monorepo
A powerful CLI tool for managing and checking dependencies across packages in a monorepo. Helps you identify version mismatches, missing dependencies, and maintain consistency across your workspace packages.
# Global installation
npm install -g @warkypublic/monorepo-dep-checker
# Or locally in your project
npm install --save-dev @warkypublic/monorepo-dep-checker
Basic usage with default paths (assumes ./package.json for main app and ./packages for workspace packages):
dep-check
Find packages using different versions of the same dependency:
dep-check --check-versions
# Output example:
react:
Difference (major):
^17.0.2 vs ^18.0.0
Packages using ^17.0.2:
- my-app (package.json)
- components (packages/components/package.json)
Packages using ^18.0.0:
- new-feature (packages/new-feature/package.json)
Recommended action:
β οΈ Major version difference - Manual review recommended
Find dependencies that exist in packages but are missing from the main app:
dep-check --check-missing
# Output example:
Summary:
Packages with dependency mismatches: 2
Unique dependencies missing from main app: 1
lodash
Unique unused dependencies from main app: 1
axios
Update all dependencies to their highest compatible version:
# Dry run - show what would be updated
dep-check --update --dry-run
# Actually perform the updates
dep-check --update
Specify custom paths for your main app and packages:
dep-check --app ../my-app/package.json --packages ../my-app/packages
Get results in JSON format for further processing:
dep-check --check-versions --format json
Options:
--app, -a Path to main app package.json [default: "./package.json"]
--packages, -p Path to packages directory [default: "./packages"]
--update, -u Update dependencies to highest compatible version
--dry-run, -d Show what would be updated without making changes
--check-versions Check for version differences between packages
--check-missing Check for dependencies missing between app and packages
--format Output format (text or json) [default: "text"]
--help Show help
--version Show version number
workspace:* protocol dependencies--check-versions before updates to identify potential breaking changes--dry-run before applying updatesContributions are welcome! Please read our contributing guidelines for details.
MIT License - see LICENSE file for details