Is there an existing issue for this?
Potentially related issues:
This issue exists in the latest npm version
Current Behavior
I'm installing a package with peer dependencies. These peer dependencies are given in ranges. During the dependency resolution only the latest version of each of these ranges is respected, so compatible non-latest versions that would satisfy the given ranges are dismissed.
An example:
This bug report is based on a package called @aposin/ng-aquila in version 16.10.0, but this is reproducible with a lot of other packages as well. The problem is always the same.

Deciphered error message:
- the package
@aposin/ng-aquila@16.10.0 has a peer dependency to @angular/core@^16.0.0. This resolves to the latest version in the allowed range: @angular/core@16.2.12
- the package
@aposin/ng-aquila@16.10.0 also has a peer dependency to @angular/cdk@^16.0.0. This resolves to the latest version in the given range: @angular/cdk@16.2.12
- the package
@angular/cdk@16.2.12 has a peer dependency to @angular/common@^16.0.0 || ^17.0.0. This resolves to the latest version in that range: @angular/common@17.0.4
- the package
@angular/common@17.0.4 has a peer dependency to @angular/core@17.0.4 which conflicts with @angular/core@16.2.12 that was found in step 1, leading to an ERESOLVE error
Expected Behavior
The dependency @angular/common@^16.0.0 || ^17.0.0 should have been resolved to a version that specifies a peer dependency that is compatible with the other found peer dependencies. npm only looks at the latest version in that range and dismisses the matching versions that would satisfy all specified dependency ranges. In this case, installing version 16.x for the range @angular/common@^16.0.0 || ^17.0.0 would have led to @angular/core@16.2.12 which satisfies all dependency ranges.
Steps To Reproduce
- Create a new folder and run
npm init -y to create a new package.json without any dependencies
- Run
npm install @aposin/ng-aquila@16.10.0
- See the
ERESOLVE error
Environment
- npm: 10.2.3
- Node.js: 21.2.0
- OS Name: Ubuntu 20.04
- System Model Name:
- npm config:
; node bin location = </some/path>
; node version = v21.2.0
; npm local prefix = </some/path>
; npm version = 10.2.3
; cwd = </some/path>
; HOME = </some/path>
; Run `npm config ls -l` to show all defaults.
Is there an existing issue for this?
Potentially related issues:
npm installfails to resolve compatible peerDependencies requirements #4104: almost the same but involves multiple direct dependenciesThis issue exists in the latest npm version
Current Behavior
I'm installing a package with peer dependencies. These peer dependencies are given in ranges. During the dependency resolution only the latest version of each of these ranges is respected, so compatible non-latest versions that would satisfy the given ranges are dismissed.
An example:
This bug report is based on a package called
@aposin/ng-aquilain version 16.10.0, but this is reproducible with a lot of other packages as well. The problem is always the same.Deciphered error message:
@aposin/ng-aquila@16.10.0has a peer dependency to@angular/core@^16.0.0. This resolves to the latest version in the allowed range:@angular/core@16.2.12@aposin/ng-aquila@16.10.0also has a peer dependency to@angular/cdk@^16.0.0. This resolves to the latest version in the given range:@angular/cdk@16.2.12@angular/cdk@16.2.12has a peer dependency to@angular/common@^16.0.0 || ^17.0.0. This resolves to the latest version in that range:@angular/common@17.0.4@angular/common@17.0.4has a peer dependency to@angular/core@17.0.4which conflicts with@angular/core@16.2.12that was found in step 1, leading to an ERESOLVE errorExpected Behavior
The dependency
@angular/common@^16.0.0 || ^17.0.0should have been resolved to a version that specifies a peer dependency that is compatible with the other found peer dependencies.npmonly looks at the latest version in that range and dismisses the matching versions that would satisfy all specified dependency ranges. In this case, installing version16.xfor the range@angular/common@^16.0.0 || ^17.0.0would have led to@angular/core@16.2.12which satisfies all dependency ranges.Steps To Reproduce
npm init -yto create a newpackage.jsonwithout any dependenciesnpm install @aposin/ng-aquila@16.10.0ERESOLVEerrorEnvironment