Skip to content

Can't install dependencies after nx migrate to angular 19 #29290

@sfebish

Description

@sfebish

Current Behavior

When I run npx nx migrate latest and then run npm install I get errors where it's still trying to resolve the old angular 18 libraries.

Expected Behavior

When I run npx nx migrate latest, I would expect to be able to install dependencies after the package.json updates

GitHub Repo

No response

Steps to Reproduce

  1. run npx nx migrate latest
  2. run npm install

Nx Report

NX   Report complete - copy this into the issue template

Node           : 20.18.0
OS             : linux-x64
Native Target  : x86_64-linux
npm            : 10.8.2

nx                 : 19.8.3
@nx/js             : 19.8.3
@nx/jest           : 19.8.3
@nx/linter         : 19.8.3
@nx/eslint         : 19.8.3
@nx/workspace      : 19.8.3
@nx/angular        : 19.8.3
@nx/devkit         : 19.8.3
@nx/eslint-plugin  : 19.8.3
@nx/playwright     : 19.8.3
@nrwl/tao          : 19.8.3
@nx/vite           : 19.8.3
@nx/web            : 19.8.3
@nx/webpack        : 19.8.3
typescript         : 5.5.4
---------------------------------------
Registered Plugins:
@nx/playwright/plugin
@nx/eslint/plugin
---------------------------------------
Community plugins:
@ngrx/signals : 18.1.1
nx-electron   : 19.0.0

Failure Logs

# npm resolution error report

While resolving: spaces@1.1.2
Found: @angular-devkit/build-angular@18.2.7
node_modules/@angular-devkit/build-angular
  dev @angular-devkit/build-angular@"19.0.4" from the root project
  peer @angular-devkit/build-angular@">= 16.0.0 < 19.0.0" from @nx/angular@19.8.3
  node_modules/@nx/angular
    @nx/angular@"20.2.1" from the root project
    @nx/angular@"19.8.3" from @nrwl/angular@19.8.3
    node_modules/@nrwl/angular
      @nrwl/angular@"19.8.3" from @nx/angular@19.8.3
  peer @angular-devkit/build-angular@">=15.0.0 <19.0.0" from jest-preset-angular@14.1.0
  node_modules/jest-preset-angular
    dev jest-preset-angular@"14.4.2" from the root project

Could not resolve dependency:
dev @angular-devkit/build-angular@"19.0.4" from the root project

Conflicting peer dependency: @angular/compiler-cli@19.0.3
node_modules/@angular/compiler-cli
  peer @angular/compiler-cli@"^19.0.0" from @angular-devkit/build-angular@19.0.4
  node_modules/@angular-devkit/build-angular
    dev @angular-devkit/build-angular@"19.0.4" from the root project

Fix the upstream dependency conflict, or retry
this command with --force or --legacy-peer-deps
to accept an incorrect (and potentially broken) dependency resolution.

Package Manager Version

No response

Operating System

  • macOS
  • Linux
  • Windows
  • Other (Please specify)

Additional Information

package.json deps before migration:

"dependencies": {
    "@angular/animations": "18.2.7",
    "@angular/cdk": "18.2.7",
    "@angular/common": "18.2.7",
    "@angular/compiler": "18.2.7",
    "@angular/core": "18.2.7",
    "@angular/forms": "18.2.7",
    "@angular/material": "18.2.7",
    "@angular/platform-browser": "18.2.7",
    "@angular/platform-browser-dynamic": "18.2.7",
    "@angular/router": "18.2.7",
    "@ctrl/ngx-emoji-mart": "^9.2.0",
    "@ngneat/until-destroy": "^10.0.0",
    "@ngrx/signals": "^18.0.0-beta.1",
    "@nx/angular": "19.8.3",
    "@rive-app/canvas": "^2.21.6",
    "@stytch/vanilla-js": "^5.3.0",
    "angular-oauth2-oidc": "^17.0.2",
    "file-saver": "^2.0.5",
    "intl-tel-input": "^24.6.1",
    "libphonenumber-js": "^1.11.12",
    "ngx-image-cropper": "^8.0.0",
    "ngx-quill": "^26.0.4",
    "protocol-registry": "^1.4.1",
    "quill": "^2.0.2",
    "quill-delta-to-html": "^0.12.1",
    "quill-mention": "^6.0.1",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "webpack-bundle-analyzer": "^4.10.2",
    "zone.js": "~0.14.3"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "18.2.7",
    "@angular-devkit/core": "18.2.7",
    "@angular-devkit/schematics": "18.2.7",
    "@angular-eslint/eslint-plugin": "18.3.0",
    "@angular-eslint/eslint-plugin-template": "18.3.0",
    "@angular-eslint/template-parser": "18.3.0",
    "@angular/cli": "~18.2.0",
    "@angular/compiler-cli": "18.2.7",
    "@angular/language-service": "18.2.7",
    "@commitlint/cli": "^19.5.0",
    "@commitlint/config-conventional": "^19.5.0",
    "@faker-js/faker": "^9.0.1",
    "@nx/devkit": "19.8.3",
    "@nx/eslint": "19.8.3",
    "@nx/eslint-plugin": "19.8.3",
    "@nx/jest": "19.8.3",
    "@nx/js": "19.8.3",
    "@nx/playwright": "19.8.3",
    "@nx/workspace": "19.8.3",
    "@playwright/test": "^1.47.2",
    "@schematics/angular": "18.2.0",
    "@swc-node/register": "1.9.2",
    "@swc/core": "1.5.7",
    "@swc/helpers": "0.5.12",
    "@types/file-saver": "^2.0.7",
    "@types/jest": "29.5.12",
    "@types/node": "18.16.9",
    "@types/prismjs": "^1.26.4",
    "@types/validator": "^13.12.2",
    "@typescript-eslint/eslint-plugin": "7.18.0",
    "@typescript-eslint/parser": "7.18.0",
    "@typescript-eslint/utils": "^7.16.0",
    "angular-http-server": "^1.12.0",
    "cheerio": "^1.0.0-rc.12",
    "command-line-args": "^5.2.1",
    "concurrently": "^9.0.1",
    "electron": "^28.2.3",
    "electron-builder": "^24.13.3",
    "eslint": "~8.57.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-playwright": "^0.15.3",
    "husky": "^9.1.5",
    "inquirer": "^8.0.0",
    "jest": "29.7.0",
    "jest-environment-jsdom": "29.7.0",
    "jest-environment-node": "^29.7.0",
    "jest-preset-angular": "14.1.0",
    "moment": "^2.30.1",
    "nx": "19.8.3",
    "nx-electron": "19.0.0-beta.1",
    "prettier": "^3.3.3",
    "prismjs": "^1.29.0",
    "ts-jest": "^29.1.0",
    "ts-node": "10.9.1",
    "typescript": "5.5.4",
    "validator": "^13.12.0",
    "webpack-cli": "^5.1.4"
  }

package.json deps after migration:

"dependencies": {
    "@angular/animations": "19.0.3",
    "@angular/cdk": "19.0.2",
    "@angular/common": "19.0.3",
    "@angular/compiler": "19.0.3",
    "@angular/core": "19.0.3",
    "@angular/forms": "19.0.3",
    "@angular/material": "19.0.2",
    "@angular/platform-browser": "19.0.3",
    "@angular/platform-browser-dynamic": "19.0.3",
    "@angular/router": "19.0.3",
    "@ctrl/ngx-emoji-mart": "^9.2.0",
    "@ngneat/until-destroy": "^10.0.0",
    "@ngrx/signals": "^18.0.0-beta.1",
    "@nx/angular": "20.2.1",
    "@rive-app/canvas": "^2.21.6",
    "@stytch/vanilla-js": "^5.3.0",
    "angular-oauth2-oidc": "^17.0.2",
    "file-saver": "^2.0.5",
    "intl-tel-input": "^24.6.1",
    "libphonenumber-js": "^1.11.12",
    "ngx-image-cropper": "^8.0.0",
    "ngx-quill": "^26.0.4",
    "protocol-registry": "^1.4.1",
    "quill": "^2.0.2",
    "quill-delta-to-html": "^0.12.1",
    "quill-mention": "^6.0.1",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "webpack-bundle-analyzer": "^4.10.2",
    "zone.js": "0.15.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "19.0.4",
    "@angular-devkit/core": "19.0.4",
    "@angular-devkit/schematics": "19.0.4",
    "@angular-eslint/eslint-plugin": "19.0.2",
    "@angular-eslint/eslint-plugin-template": "19.0.2",
    "@angular-eslint/template-parser": "19.0.2",
    "@angular/cli": "~18.2.0",
    "@angular/compiler-cli": "19.0.3",
    "@angular/language-service": "19.0.3",
    "@commitlint/cli": "^19.5.0",
    "@commitlint/config-conventional": "^19.5.0",
    "@faker-js/faker": "^9.0.1",
    "@nx/devkit": "20.2.1",
    "@nx/eslint": "20.2.1",
    "@nx/eslint-plugin": "20.2.1",
    "@nx/jest": "20.2.1",
    "@nx/js": "20.2.1",
    "@nx/playwright": "20.2.1",
    "@nx/workspace": "20.2.1",
    "@playwright/test": "^1.47.2",
    "@schematics/angular": "19.0.4",
    "@swc-node/register": "1.9.2",
    "@swc/core": "1.5.7",
    "@swc/helpers": "0.5.12",
    "@types/file-saver": "^2.0.7",
    "@types/jest": "29.5.12",
    "@types/node": "18.16.9",
    "@types/prismjs": "^1.26.4",
    "@types/validator": "^13.12.2",
    "@typescript-eslint/eslint-plugin": "7.18.0",
    "@typescript-eslint/parser": "7.18.0",
    "@typescript-eslint/utils": "^7.16.0",
    "angular-http-server": "^1.12.0",
    "cheerio": "^1.0.0-rc.12",
    "command-line-args": "^5.2.1",
    "concurrently": "^9.0.1",
    "electron": "^28.2.3",
    "electron-builder": "^24.13.3",
    "eslint": "~8.57.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-playwright": "^0.15.3",
    "husky": "^9.1.5",
    "inquirer": "^8.0.0",
    "jest": "29.7.0",
    "jest-environment-jsdom": "29.7.0",
    "jest-environment-node": "^29.7.0",
    "jest-preset-angular": "14.4.2",
    "moment": "^2.30.1",
    "nx": "20.2.1",
    "nx-electron": "19.0.0",
    "prettier": "^3.3.3",
    "prismjs": "^1.29.0",
    "ts-jest": "^29.1.0",
    "ts-node": "10.9.1",
    "typescript": "5.6.3",
    "validator": "^13.12.0",
    "webpack-cli": "^5.1.4"
  }

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions