Skip to content

ng update deletes node_modules before ensuring it will succeed #22162

Open
@ericeslinger

Description

@ericeslinger

🐞 Bug report

Command (mark with an x)

ng update @angular/cli @angular/cdk ...

  • new
  • build
  • serve
  • test
  • e2e
  • generate
  • add
  • update
  • lint
  • extract-i18n
  • run
  • config
  • help
  • version
  • doc

Is this a regression?

Not sure. Might be half bug, half feature request.

Description

When updating from angular 12 to 13, the following sequence of events happened:

  1. ng update to determine dependencies
  2. ng update ...
  3. after determining dependencies and updating my package.json file, the script seems to delete node_modules
  4. the npm install step triggered by ng update fails due to a peer dependency conflict
  5. this is the FR/bug this part of the script should do a dry run and abort before deleting node_modules if the npm install with the updated package.json file will fail. Ideally add more details and suggestions here, and roll back the change to package.json.
  6. Now re-running ng update a second time will note no installed dependencies, because apparently the script checks node_modules and not package.json.
  7. The actual fix for the deeper bug is some conflict in peer dependencies between the older 12 installation of architect and build-angular and the updated package.json file. Reverting package.json to head (the 12 installation), running npm install to re-install the now-missing node_modules directory, then deleting package-lock.json, will allow the ng update command to run to completion. If this is a common issue, adding some help text in that regard would be nice.

🌍 Your Environment

NOTE this is post-upgrade, the bug happened during a 12->13 upgrade.


Angular CLI: 13.0.2
Node: 16.10.0
Package Manager: npm 7.24.0
OS: linux x64

Angular: 13.0.1
... animations, cdk, common, compiler, compiler-cli, core, forms
... material, platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1300.2
@angular-devkit/build-angular   13.0.2
@angular-devkit/core            13.0.2
@angular-devkit/schematics      13.0.2
@angular/cli                    13.0.2
@angular/fire                   7.2.0
@schematics/angular             13.0.2
rxjs                            6.6.7
typescript                      4.4.4

Anything else relevant?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions