with one click
e5-fix-dependency-conflict
// Resolve package version and peer dependency conflicts in the dependency tree.
// Resolve package version and peer dependency conflicts in the dependency tree.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | e5-fix-dependency-conflict |
| description | Resolve package version and peer dependency conflicts in the dependency tree. |
When to use: Package manager reports version conflicts or incompatible dependencies
Purpose: Resolve dependency tree conflicts to enable successful installation.
Extract from error message:
Common error patterns:
npm:
ERESOLVE unable to resolve dependency tree
Found: package-a@1.0.0
Could not resolve dependency:
peer package-b@"^2.0.0" from package-c@3.0.0
yarn:
error Found incompatible versions:
package-a@1.0.0 (required by x, required ^1.0.0)
package-a@2.0.0 (required by y, required ^2.0.0)
pip:
ERROR: package-a 1.0.0 has requirement package-b>=2.0.0,
but you'll have package-b 1.5.0 which is incompatible.
For each package in conflict:
Check package documentation:
Check peer dependencies:
npm info package-name peerDependencies
Check available versions:
npm view package-name versions
Choose appropriate strategy:
A. Update to Latest Compatible
B. Lock Specific Version
C. Update Dependent Package
D. Use Resolution Override
Method 1: Update package.json versions
{
"dependencies": {
"package-a": "^2.0.0", // Update to compatible version
"package-b": "^3.0.0"
}
}
Method 2: Use overrides (npm 8.3+)
{
"overrides": {
"package-a": "2.5.0" // Force specific version
}
}
Method 3: Use legacy peer deps flag
npm install --legacy-peer-deps
Method 4: Install with force
npm install --force # Not recommended, may break things
Use resolutions:
{
"resolutions": {
"package-a": "2.5.0" // Force version across all deps
}
}
Or update and reinstall:
yarn upgrade package-a@^2.0.0
Method 1: Update requirements.txt
package-a==2.5.0 # Exact version
package-b>=2.0.0,<3.0.0 # Version range
Method 2: Install specific version
pip install package-a==2.5.0
Method 3: Use constraint file
Create constraints.txt:
package-a==2.5.0
Install with:
pip install -c constraints.txt -r requirements.txt
Add dependency management:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>package-a</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
</dependencyManagement>
Or exclude transitive dependency:
<dependency>
<groupId>com.example</groupId>
<artifactId>package-b</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>com.example</groupId>
<artifactId>package-a</artifactId>
</exclusion>
</exclusions>
</dependency>
Remove cached dependencies:
npm:
rm -rf node_modules
rm package-lock.json
npm cache clean --force
npm install
yarn:
rm -rf node_modules
rm yarn.lock
yarn cache clean
yarn install
pip:
pip cache purge
pip install -r requirements.txt --force-reinstall
After updating configuration:
# npm
npm install
# yarn
yarn install
# pip
pip install -r requirements.txt
# maven
mvn clean install
After resolving conflict:
Add comment in package file:
{
"dependencies": {
"package-a": "2.5.0" // Fixed at 2.5.0 to resolve conflict with package-b
}
}
Error:
package-a@3.0.0 requires peer package-b@^2.0.0
but package-b@1.5.0 is installed
Fix:
npm install package-b@^2.0.0
Error:
Found: lodash@4.17.0 (from project)
Found: lodash@3.10.0 (from old-package)
Fix using overrides:
{
"overrides": {
"lodash": "4.17.21" // Use latest version everywhere
}
}
Error:
package-x needs react@^16.0.0
package-y needs react@^18.0.0
Fix: Update package-x to version that supports React 18, or downgrade package-y.
npm install package-x@latest # Check if newer version supports React 18
Error:
Package "@angular/material" has a peer dependency on "@angular/cdk@^17.0.0"
but "@angular/cdk@16.0.0" is installed
Fix:
npm install @angular/cdk@^17.0.0
Or update both:
npm install @angular/material@^17.0.0 @angular/cdk@^17.0.0
Error:
Found: typescript@4.9.0
Required: typescript@~5.2.0 by @angular/compiler-cli@17.0.0
Fix package.json:
{
"devDependencies": {
"typescript": "~5.2.0" // Update to required version
}
}
Reinstall:
rm -rf node_modules package-lock.json
npm install
Error:
package-a depends on package-c@1.x
package-b depends on package-c@2.x
Fix using overrides:
{
"dependencies": {
"package-a": "^1.0.0",
"package-b": "^2.0.0"
},
"overrides": {
"package-c": "2.5.0" // Force v2 everywhere, ensure package-a can handle it
}
}
Error:
ERROR: django 3.0.0 has requirement sqlparse>=0.2.2,
but you'll have sqlparse 0.1.0 which is incompatible.
Fix requirements.txt:
django==3.0.0
sqlparse>=0.2.2 # Update to satisfy django's requirement
Reinstall:
pip install -r requirements.txt --upgrade