Skip to content

ng update deletes node_modules before ensuring it will succeed #22162

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions