Compare package.json dependency versions across multiple repositories to identify mismatches and keep dependencies in sync.
npx dev-version-inspector ../repo1 ../repo2 ../repo3This generates a markdown report showing which dependencies have mismatched versions across your repositories.
No installation required! Use npx to run it directly:
npx dev-version-inspector <repo1> <repo2> [repo3...] [options]npm install -g dev-version-inspector
dev-version-inspector <repo1> <repo2> [options]npm install --save-dev dev-version-inspector
npx dev-version-inspector <repo1> <repo2> [options]npx dev-version-inspector <repo1> <repo2> [repo3...] [options]Or if installed globally:
dev-version-inspector <repo1> <repo2> [repo3...] [options]| Option | Description | Default |
|---|---|---|
--mode=<type> |
Comparison mode: all, mismatches, matches, shared |
mismatches |
--out=<file> |
Output file path | REPORT.md |
--include=<sections> |
Dependency sections to check (comma-separated) | dependencies,devDependencies |
--grouped |
Group output by dependency section | true (default) |
--combined |
Combine all sections into one table | false |
--help, -h |
Show help message | - |
dependenciesdevDependenciespeerDependenciesoptionalDependencies
Compare dependencies across three repositories and show only mismatches:
npx dev-version-inspector ../repo1 ../repo2 ../repo3Include both matching and mismatching dependencies:
npx dev-version-inspector ../repo1 ../repo2 --mode=allSee which dependencies are already aligned:
npx dev-version-inspector ../repo1 ../repo2 --mode=matchesShow all dependencies that appear in at least 2 repositories with unified versions:
npx dev-version-inspector ../repo1 ../repo2 ../repo3 --mode=sharedThis mode automatically combines dependencies, devDependencies, and peerDependencies sections, prioritizing versions in this order: dependencies > devDependencies > peerDependencies.
Show all dependencies in a single table instead of grouped by section:
npx dev-version-inspector ../repo1 ../repo2 --combinednpx dev-version-inspector ../repo1 ../repo2 \
--include=dependencies,peerDependencies \
--out=deps-report.mdShows only dependencies that have different versions across repositories. Useful for identifying what needs to be aligned.
Shows all dependencies with a match indicator (✅) for those that are aligned. Provides complete overview.
Shows only dependencies that are already aligned across all repositories. Useful for validation.
Shows dependencies that appear in at least 2 repositories, with a unified view across all dependency sections. This mode:
- Automatically combines
dependencies,devDependencies, andpeerDependencies - Filters to show only dependencies present in 2 or more repos
- Uses version priority:
dependencies>devDependencies>peerDependencieswhen a dependency exists in multiple sections of the same repo - Shows all repos in the table (with empty cells for repos that don't have the dependency)
- Eliminates duplicate entries
Perfect for identifying common dependencies across multiple projects and spotting version inconsistencies.
dev-version-inspector/
├── bin/
│ └── dev-version-inspector.js # CLI entry point
├── src/ # TypeScript source files
│ ├── cli.ts # Argument parsing
│ ├── reader.ts # Read package.json files
│ ├── comparator.ts # Version comparison logic
│ ├── registry.ts # npm registry checks
│ ├── formatter.ts # Markdown formatting
│ └── index.ts # Main orchestrator
├── dist/ # Compiled JavaScript (generated)
│ ├── *.js # Compiled code
│ ├── *.d.ts # Type definitions
│ └── *.js.map # Source maps
├── tests/ # Test files
├── tsconfig.json # TypeScript configuration
├── package.json
└── README.md
- Clone the repository
- Install dependencies:
npm install
- Build TypeScript:
npm run build
npm testThe project uses TypeScript. Compile the source code:
npm run buildThis compiles src/*.ts files to dist/*.js with type definitions.
For maintainers publishing updates:
-
Update version in
package.json:npm version patch # or minor, or major -
Build and publish:
npm publish
The
prepublishOnlyscript automatically runsnpm run buildbefore publishing. -
Push tags to GitHub:
git push && git push --tags
MIT