Skip to content

@angular/cli v20. NPM cannot resolve @angular/fire #3667

Description

@MarksASP95

I'm trying to install @angular/fire to my Angular 20 project, but NPM won't resolve the package.

package.json

{
  "name": "my-project",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },
  "prettier": {
    "overrides": [
      {
        "files": "*.html",
        "options": {
          "parser": "angular"
        }
      }
    ]
  },
  "private": true,
  "dependencies": {
    "@angular/common": "^20.1.0",
    "@angular/compiler": "^20.1.0",
    "@angular/core": "^20.1.0",
    "@angular/forms": "^20.1.0",
    "@angular/platform-browser": "^20.1.0",
    "@angular/router": "^20.1.0",
    "@ng-select/ng-select": "^20.1.2",
    "firebase": "^12.1.0",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.15.0"
  },
  "devDependencies": {
    "@angular/build": "^20.1.5",
    "@angular/cli": "^20.1.5",
    "@angular/compiler-cli": "^20.1.0",
    "@types/jasmine": "~5.1.0",
    "jasmine-core": "~5.8.0",
    "karma": "~6.4.0",
    "karma-chrome-launcher": "~3.2.0",
    "karma-coverage": "~2.2.0",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.1.0",
    "typescript": "~5.8.2"
  }
}

I'm using the add command
ng add @angular/fire

Output

√ Determining Package Manager
  › Using package manager: npm
√ Searching for compatible package version
  › Found compatible package version: @angular/fire@20.0.1.
√ Loading package information from registry
√ Confirming installation
× Unable to install package

npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: my-project@0.0.0
npm error Found: @angular/core@20.1.6
npm error node_modules/@angular/core
npm error   peerOptional @angular/core@"^20.0.0" from @angular/build@20.1.5
npm error   node_modules/@angular/build
npm error     dev @angular/build@"^20.1.5" from the root project
npm error   peer @angular/core@"20.1.6" from @angular/common@20.1.6
npm error   node_modules/@angular/common
npm error     peer @angular/common@"20.1.6" from @angular/forms@20.1.6
npm error     node_modules/@angular/forms
npm error       peer @angular/forms@"^20.0.0" from @ng-select/ng-select@20.1.2
npm error       node_modules/@ng-select/ng-select
npm error         @ng-select/ng-select@"^20.1.2" from the root project
npm error       1 more (the root project)
npm error     peer @angular/common@"20.1.6" from @angular/platform-browser@20.1.6
npm error     node_modules/@angular/platform-browser
npm error       peerOptional @angular/platform-browser@"^20.0.0" from @angular/build@20.1.5
npm error       node_modules/@angular/build
npm error         dev @angular/build@"^20.1.5" from the root project
npm error       3 more (@angular/forms, @angular/router, the root project)
npm error     3 more (@angular/router, @ng-select/ng-select, the root project)
npm error   5 more (@angular/forms, @angular/platform-browser, ...)
npm error
npm error Could not resolve dependency:
npm error @angular/fire@"20.0.1" from the root project
npm error
npm error Conflicting peer dependency: @angular/core@20.1.7
npm error node_modules/@angular/core
npm error   peer @angular/core@"20.1.7" from @angular/platform-browser-dynamic@20.1.7
npm error   node_modules/@angular/platform-browser-dynamic
npm error     peer @angular/platform-browser-dynamic@"^20.0.0" from @angular/fire@20.0.1
npm error     node_modules/@angular/fire
npm error       @angular/fire@"20.0.1" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error C:\Users\Marco\AppData\Local\npm-cache\_logs\2025-08-15T19_42_39_683Z-eresolve-report.txt
npm error A complete log of this run can be found in: C:\Users\Marco\AppData\Local\npm-cache\_logs\2025-08-15T19_42_39_683Z-debug-0.log

Angular version

Angular CLI: 20.1.5                                     
Node: 22.18.0                                           
Package Manager: npm 10.9.3                             
OS: win32 x64                                           
                                                        
Angular: 20.1.6                                         
... common, compiler, compiler-cli, core, forms         
... platform-browser, router                            
                                                        
Package                      Version                    
------------------------------------------------------  
@angular-devkit/architect    0.2001.5                   
@angular-devkit/core         20.1.5                     
@angular-devkit/schematics   20.1.5                     
@angular/build               20.1.5                     
@angular/cli                 20.1.5                     
@schematics/angular          20.1.5                     
rxjs                         7.8.2                      
typescript                   5.8.3                      
zone.js                      0.15.1

Same thing happens if I install directly with npm

npm i @angular/fire

Activity

  1. PeHk commented on Aug 19, 2025

    @PeHk

    Same issue here, following https://developers.google.com/codelabs/building-a-web-app-with-angular-and-firebase#9 this tutorial I am unable to install @angular/material with @angular/fire due to mentioned error above. What should I do?

  2. YuliiaZas commented on Sep 4, 2025

    @YuliiaZas

    Same issue

  3. added
    comp: coreFirebaseApp DI core (src/app).
    triaged: keep-openTriaged and intentionally kept open; exempt from any future stale process.
    type: bugDefect: expected behavior doesn't happen.
    on Jul 25, 2026
  4. armando-navarro commented on Jul 26, 2026

    @armando-navarro
    Collaborator

    Thanks for the report and the resolution output, which shows the conflict clearly.

    The cause is a required peer dependency on @angular/platform-browser-dynamic that @angular/fire declares but does not actually use. To satisfy that peer, npm picks a platform-browser-dynamic patch, and each such patch pins @angular/core/@angular/common to its own exact patch version, which usually differs from the core version your app already has, so npm cannot satisfy both and you get ERESOLVE.

    Where this stands:

    • The fix (removing that unused peer) is merged to main (PR fix(core): drop vestigial @angular/platform-browser-dynamic peer #3718), but it is not in a published release yet. Both the current latest (20.0.1) and next (21.0.0-rc.0) still carry the peer, so both still reproduce this.
    • It will go out in the next releases on both lines; I would rather not commit to exact version numbers here until they are cut.
    • In the meantime, installing with npm i --legacy-peer-deps (or --force) is a safe workaround here, precisely because the peer is unused (nothing in the shipped package imports @angular/platform-browser-dynamic).

    I will follow up on this issue once the fix is in a published release so you are not left guessing. If --legacy-peer-deps does not get you unblocked, let me know.

  5. armando-navarro commented on Oct 10, 2026

    @armando-navarro
    Collaborator

    Following up as promised: the fix is now in published releases on both lines.

    • Angular 20: AngularFire 20.1.1, now on npm's latest tag, no longer declares the unused peer dependencies that caused this ERESOLVE. ng add @angular/fire or npm install @angular/fire installs it.
    • Angular 21: the release candidate 21.0.0-rc.2, on the next tag, carries the same fix.

    The --legacy-peer-deps workaround is no longer needed. I'm closing this now. If you still hit an ERESOLVE from @angular/fire on one of these versions, please open a new issue with the resolution output, and I'll take a look.

  6. added this to the 21.0.0-rc.2 milestone on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    comp: coreFirebaseApp DI core (src/app).triaged: keep-openTriaged and intentionally kept open; exempt from any future stale process.type: bugDefect: expected behavior doesn't happen.version: current (v17+)Targets the current modular API (v17+).

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions