[X] Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
<14 probably, not sure as it was a long time ago
Description
While updating a v15 application using Yarn (non-PnP), the ng update command fails with an unhelpful error.
The error claims there is no packageManager field in package.json, which is not true. Even if the field is really missing, ng update adds it but the next run will throw the same error.
The only workaround I found is to use npm to do the update (set packageManager: "npm@10.7.0" in package.json, remove cli.packageManager from angular.json), and then revert to Yarn after the update.
It does not look like a Yarn issue, the behavior is the same with 3.4.1 or 4.2.2.
Minimal Reproduction
corepack enable
npx --package=@angular/cli@15 ng new ng15 --package-manager=yarn
add .yarnrc.yml with content: nodeLinker: node-modules
yarn install
ng update @angular/core@16 @angular/cli@16 --verbose --allow-dirty
Exception or Error
PS > ng update @angular/core@16 --verbose
Locating potential npmrc files:
Locating potential yarnrc files:
Trying 'C:\Users\me\.yarnrc'...found.
Trying 'C:\Users\me\.yarnrc'...found.
The installed Angular CLI version is outdated.
Installing a temporary Angular CLI versioned 16.2.14 to perform the update.
! The local project doesn't define a 'packageManager' field. Corepack will now add one referencing yarn@3.4.1+sha512.a333bf9c2557d71f5ba87dd1446cde24bb9c35301ec29dd2baba577b3f9d1ab61348b66a1324de9088c40a996c5b9203794da8bf14cab9fae6a6eccc00cb8078.
! For more details about this field, consult the documentation at https://nodejs.org/api/packages.html#packagemanager
✖ Packages installation failed, see above.
Command
update
Is this a regression?
The previous version in which this bug was not present was
<14 probably, not sure as it was a long time ago
Description
While updating a v15 application using Yarn (non-PnP), the
ng update
command fails with an unhelpful error. The error claims there is nopackageManager
field in package.json, which is not true. Even if the field is really missing,ng update
adds it but the next run will throw the same error.The only workaround I found is to use npm to do the update (set
packageManager: "npm@10.7.0"
inpackage.json
, removecli.packageManager
fromangular.json
), and then revert to Yarn after the update.It does not look like a Yarn issue, the behavior is the same with 3.4.1 or 4.2.2.
Minimal Reproduction
corepack enable
npx --package=@angular/cli@15 ng new ng15 --package-manager=yarn
.yarnrc.yml
with content:nodeLinker: node-modules
yarn install
ng update @angular/core@16 @angular/cli@16 --verbose --allow-dirty
Exception or Error
Your Environment
Anything else relevant?
No response