Running the optional angular build migration installs incompatible version of @angular/build

Open
#30,696 4 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
38/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
angular, typescript
Domain
build-system, cli

Research direction

Start with the use-application-builder migration invoked by ng update @angular/cli --name=use-application-builder, using the linked reproduction. Inspect the changes to package.json and angular.json and how the temporary CLI resolves @angular/build. Done means the migration installs a version compatible with the project being updated, with tests covering this version-selection case.

Written by the indexing model from the issue text.

Description

area: @angular/cli freq1: low severity3: broken type: bug/fix
Command

update

Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

No response

Description

Running the optional migration after skipping the build migration during initial update incorrectly installs @angular/build v20 which is not compatible

Minimal Reproduction

https://github.com/simhnna/angular-build-migration-demo/tree/8971afceeaf60bbe9fff4c9a2777b7711dcb095f

Run ng update @angular/cli --name=use-application-builder

The installed Angular CLI version is outdated.
Installing a temporary Angular CLI versioned 20.1.0 to perform the update.
Using package manager: npm
Collecting installed dependencies...
Found 22 dependencies.
** Executing 'use-application-builder' of package '@angular/cli' **

❯ Migrate application projects to the new build system.
  Application projects that are using the '@angular-devkit/build-angular' package's 'browser' and/or 'browser-esbuild' builders will be migrated to use the new 'application' builder.
  You can read more about this, including known issues and limitations, here: https://angular.dev/tools/cli/build-system-migration
    The output location of the browser build has been updated from "dist/project" to "dist/project/browser". You might need to adjust your deployment pipeline or, as an alternative, set outputPath.browser to "" in order to maintain the previous functionality.
UPDATE package.json (1032 bytes)
UPDATE angular.json (2749 bytes)
✔ Packages installed successfully.
  Migration completed (2 files modified).

It installs @angular/build@20 because it uses @angular/cli@20 to run the update

Exception or Error

Your Environment
_                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 18.2.20
Node: 22.17.0
Package Manager: npm 10.9.2
OS: linux x64

Angular: 18.2.13
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1802.20
@angular-devkit/build-angular   18.2.20
@angular-devkit/core            18.2.20
@angular-devkit/schematics      18.2.20
@angular/cli                    18.2.20
@schematics/angular             18.2.20
rxjs                            7.8.2
typescript                      5.4.5
zone.js                         0.14.10
Anything else relevant?

No response

Dominant language
TypeScript
Stars
27k
Forks
11.8k
Avg merge
16h 35m
Merged PRs (30d)
176

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from angular/angular-cli

All issues in angular/angular-cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.