11# 🔍 peer-dependency-checker
22
3- ** by hyperdrift * *
3+ * Smart dependency compatibility checking before you upgrade *
44
5- * The smart way to check dependency compatibility before you upgrade*
6-
7- * Stop breaking your builds. Check compatibility first.*
5+ Stop breaking your builds. Check compatibility first.
86
97---
108
11- ## 🚀 ** Quick Integration ** (1 Command Setup)
9+ ## 🚀 Quick Setup
1210
13- Add peer dependency checking to ** any existing project** in seconds :
11+ Add peer dependency checking to any project in one command :
1412
1513``` bash
1614# One command setup - works with npm, yarn, pnpm, or bun
@@ -22,237 +20,117 @@ pdc setup
2220```
2321
2422** What this does:**
25- ✅ Detects your package manager (npm/yarn/pnpm/bun)
26- ✅ Adds pre/post-install hooks to your ` package.json `
27- ✅ Sets up automatic checking on ` npm install ` , ` yarn add ` , etc.
28- ✅ Uses smart defaults (` .pdcrc.json ` optional - [ customize if needed] ( ./docs/CONFIG.md ) )
29- ✅ ** Works immediately** - zero configuration required
30-
31- ** Result:** Every time you or your team installs dependencies, peer dependency conflicts are checked automatically!
32-
33- ---
34-
35- ## 💡 ** See It In Action**
36-
37- ``` bash
38- # Before: Risky blind install
39- npm install react@19 react-dom@19
40- # ERROR: peer dependency conflicts everywhere 😢
41-
42- # After: Safe install with pdc
43- npm install react@19 react-dom@19
44- # 🔍 Pre-checking compatibility...
45- # ✅ Compatible! Safe to upgrade
46- # ⚠️ Conflict detected with @types/react - details below
47- # Continue? (y/N)
48- ```
23+ - ✅ Detects your package manager automatically
24+ - ✅ Adds pre/post-install hooks to your ` package.json `
25+ - ✅ Sets up automatic checking on installs
26+ - ✅ Works immediately with zero configuration
4927
5028---
5129
52- ## 🚀 Why peer-dependency-checker?
53-
54- Ever had a major upgrade break your entire build because of peer dependency conflicts? ** We've all been there.**
55-
56- ``` bash
57- # The old way: 🔥 YOLO and pray
58- npm install react@19 react-dom@19
59- # ERROR: peer dependency conflicts everywhere
60-
61- # The hyperdrift way: ✅ Check first
62- npx peer-dependency-checker check react@19 react-dom@19
63- # ✅ Compatible! Safe to upgrade
64- # ⚠️ Conflict detected with @types/react - check details below
65- ```
66-
67- ** peer-dependency-checker** analyzes your dependencies and tells you exactly what will break ** before** you upgrade.
68-
6930## ⚡ Installation
7031
7132``` bash
7233# Global install (recommended)
7334npm install -g peer-dependency-checker
7435
7536# Or use directly with npx
76- npx peer-dependency-checker --help
37+ npx peer-dependency-checker scan
7738```
7839
79- ## 🎯 Quick Start
40+ ## 🎯 Usage
8041
8142``` bash
82- # Check what's outdated and if upgrades are safe
43+ # Analyze your project for upgrade opportunities
8344pdc scan
8445
46+ # Quick scan with minimal output
47+ pdc scan --quick
48+
8549# Check specific packages before upgrading
8650pdc check react@19 react-dom@19
8751
88- # Analyze peer dependency conflicts for all outdated packages
52+ # Deep peer dependency analysis
8953pdc analyze
9054
91- # Get upgrade recommendations with safety ratings
92- pdc recommend
55+ # Pre-installation compatibility check
56+ pdc precheck
9357```
9458
95- ## ✨ Features
96-
97- ### 🔍 ** Smart Compatibility Analysis**
98- - Detects peer dependency conflicts before installation
99- - Analyzes version ranges and compatibility matrices
100- - Shows exactly which packages will conflict
101-
102- ### 🎯 ** Upgrade Planning**
103- - Phase-based upgrade recommendations
104- - Risk assessment for each package
105- - Safe upgrade paths with dependency order
106-
107- ### 🚨 ** Conflict Prevention**
108- - Pre-install compatibility checks
109- - Real-time peer dependency validation
110- - Breaking change detection
111-
112- ### 📊 ** Beautiful Output**
113- - Color-coded compatibility reports
114- - Clear upgrade recommendations
115- - Detailed conflict explanations
116-
11759## 📖 Examples
11860
119- ### Check Current Project Health
61+ ### Project Health Check
12062``` bash
12163$ pdc scan
12264
12365🔍 Scanning your project...
12466
125- ✅ COMPATIBLE (12 packages)
126- • @types/node: 22.15.21 → 24.0.3
127- • tailwindcss: 4.1.7 → 4.1.10
128- • next: 15.3.2 → 15.3.4
129-
130- ⚠️ CONFLICTS DETECTED (2 packages)
131- • react: 18.3.1 → 19.1.0
132- └── Conflict: @types/react needs updating to ^19.0.0
133-
134- 🔴 BREAKING CHANGES (1 package)
135- • some-package: 2.1.0 → 3.0.0
136- └── Breaking: API changes detected
137- ```
67+ 📦 Project: my-app
68+ 🔧 Package Manager: npm
69+ 📋 Dependencies: 15 production, 8 development
13870
139- ### Test Specific Upgrades
140- ``` bash
141- $ pdc check react@19 react-dom@19 @types/react@19
71+ 📈 OUTDATED PACKAGES
72+ ────────────────────────────────────────
73+ react: 18.3.1 → 19.1.0
74+ @types/node: 22.15.21 → 24.0.3
14275
143- 🧪 Testing compatibility for 3 packages...
76+ 🔗 PEER DEPENDENCY STATUS
77+ ────────────────────────────────────────
78+ No peer dependency warnings detected
14479
145- ✅ react@19.1.0
146- └── No conflicts detected
147-
148- ✅ react-dom@19.1.0
149- └── Requires: react ^19.1.0 ✅
150-
151- ⚠️ @types/react@19.1.8
152- └── May conflict with: @types/react-dom@18.x
153- └── Recommendation: Also upgrade @types/react-dom@19.1.6
154-
155- 🎯 UPGRADE PLAN:
156- 1. npm install react@19 react-dom@19
157- 2. npm install -D @types/react@19 @types/react-dom@19
80+ 💡 RECOMMENDATIONS
81+ ────────────────────────────────────────
82+ ✅ All packages are up to date!
15883```
15984
160- ### Get Smart Recommendations
85+ ### Test Specific Upgrades
16186``` bash
162- $ pdc recommend
87+ $ pdc check react@19 react-dom@19
16388
164- 🎯 UPGRADE RECOMMENDATIONS
89+ 🧪 Testing 2 package(s)...
16590
166- 🟢 SAFE TO UPGRADE NOW:
167- • tailwindcss, postcss, eslint (patch/minor updates)
168- • Command: npm update
91+ ✅ react@19
92+ └── No peer dependencies required
16993
170- 🟡 REQUIRES TESTING:
171- • react ecosystem (major update)
172- • Plan: Create test branch, upgrade together
173-
174- 🔴 POSTPONE:
175- • node types (may break TypeScript compilation)
176- • Action: Check Node.js compatibility first
94+ ✅ react-dom@19
95+ └── Peer deps: { react: ' ^19.1.0' }
17796` ` `
17897
17998# # 🛠️ Commands
18099
181100| Command | Description |
182101| ---------| -------------|
183102| ` pdc scan` | Analyze current project for upgrade opportunities |
184- | ` pdc check <packages> ` | Test specific package upgrades for conflicts |
185- | ` pdc analyze ` | Deep analysis of all peer dependencies |
186- | ` pdc recommend ` | Get smart upgrade recommendations |
187- | ` pdc outdated ` | Enhanced version of ` npm outdated ` with compatibility |
188- | ` pdc why <package> ` | Explain why a package can't be upgraded |
103+ | ` pdc scan --quick` | Quick scan with minimal output |
104+ | ` pdc check < packages> ` | Test specific package upgrades |
105+ | ` pdc analyze` | Deep peer dependency analysis |
106+ | ` pdc analyze --brief` | Brief analysis with key findings |
107+ | ` pdc precheck` | Pre-installation compatibility check |
108+ | ` pdc setup` | One-command setup for external projects |
189109
190110# # 🔧 Configuration
191111
192- peer-dependency-checker works out-of-the-box with ** smart defaults** :
112+ Works out-of-the-box with smart defaults. For custom settings, create ` .pdcrc.json ` :
193113
194114` ` ` json
195115{
196- "packageManager" : " auto-detect" , // npm, yarn, pnpm, bun
197- "riskTolerance" : " medium" , // low, medium, high
198- "autoCheck" : true , // Auto-check on installs
199- "checkOnInstall" : true , // Pre-install checks
200- "excludePackages" : [], // Skip specific packages
201- "includeDevDependencies" : true , // Include dev dependencies
202- "outputFormat" : " colored" // colored, json, minimal
116+ " packageManager" : " npm" ,
117+ " riskTolerance" : " medium" ,
118+ " excludePackages" : [],
119+ " outputFormat" : " colored"
203120}
204121` ` `
205122
206- ** 🎛️ Need custom settings?** Create ` .pdcrc.json ` in your project root:
207-
208- ``` json
209- {
210- "riskTolerance" : " low" ,
211- "excludePackages" : [" legacy-package" ],
212- "outputFormat" : " json"
213- }
214- ```
215-
216- 📖 ** [ Full Configuration Guide →] ( ./docs/CONFIG.md ) **
217-
218- ## 🤝 Comparison with Other Tools
219-
220- | Feature | peer-dependency-checker | npm-check-updates | npm outdated |
221- | ---------| ------------------------| -------------------| --------------|
222- | Peer dependency analysis | ✅ ** Advanced** | ❌ | ❌ |
223- | Compatibility checking | ✅ ** Pre-install** | ❌ | ❌ |
224- | Upgrade recommendations | ✅ ** Smart phases** | ⚠️ Basic | ❌ |
225- | Risk assessment | ✅ ** Detailed** | ❌ | ❌ |
226- | Breaking change detection | ✅ | ❌ | ❌ |
227-
228- ## 🎨 The Hyperdrift Approach
229-
230- At ** hyperdrift** , we believe in tools that make developers' lives easier, not harder. ** peer-dependency-checker** was born from our frustration with tools that show you what * can* be upgraded, but not what * should* be upgraded safely.
231-
232- * "It's like having a senior developer review your upgrades before you break production."*
233-
234- ## 📊 Journey
235-
236- Read about how we built this tool and the problems it solves in our [ Journey article] ( ./public/docs/journey.mdx ) .
237-
238- ## 🚧 Roadmap
239-
240- - [ ] ** v1.1** : GitHub Actions integration
241- - [ ] ** v1.2** : Dependency vulnerability scanning
242- - [ ] ** v1.3** : Automated PR creation for safe upgrades
243- - [ ] ** v1.4** : Team collaboration features
244- - [ ] ** v2.0** : AI-powered upgrade recommendations
123+ 📖 ** [Configuration Guide →](./docs/CONFIG.md)**
245124
246125# # 🤝 Contributing
247126
248- We love contributions! Check out our [ Contributing Guide ] ( CONTRIBUTING.md ) to get started.
127+ We welcome contributions!
249128
250129` ` ` bash
251- # Quick start for contributors
252130git clone https://github.com/hyperdrift-io/peer-dependency-checker
253131cd peer-dependency-checker
254132npm install
255- npm run dev
133+ npm test
256134` ` `
257135
258136# # 📄 License
@@ -261,9 +139,4 @@ MIT © [Hyperdrift](https://hyperdrift.io)
261139
262140---
263141
264-
265142** Built with ❤️ by the hyperdrift team**
266-
267- * Making developer tools that actually work*
268-
269- [ Report Bug] ( https://github.com/hyperdrift-io/peer-dependency-checker/issues ) • [ Request Feature] ( https://github.com/hyperdrift-io/peer-dependency-checker/issues ) • [ Join Discussion] ( https://github.com/hyperdrift-io/peer-dependency-checker/discussions )
0 commit comments