From 4e14a7e861110709cce86afd2c813221f6b6174b Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 25 Jun 2026 13:00:23 +0000 Subject: [PATCH] fix(@angular/cli): improve error handling and logging for package manager installation failures during CLI updates Enhance error reporting when package manager installations fail by extracting and logging the command's detailed output (stdout/stderr). --- packages/angular/cli/lib/cli/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/angular/cli/lib/cli/index.ts b/packages/angular/cli/lib/cli/index.ts index 32f1eac5bab1..a89e8f1dc9ce 100644 --- a/packages/angular/cli/lib/cli/index.ts +++ b/packages/angular/cli/lib/cli/index.ts @@ -10,6 +10,7 @@ import { logging } from '@angular-devkit/core'; import { format, stripVTControlCharacters } from 'node:util'; import { CommandModuleError } from '../../src/command-builder/command-module'; import { runCommand } from '../../src/command-builder/command-runner'; +import { PackageManagerError } from '../../src/package-managers'; import { colors, supportColor } from '../../src/utilities/color'; import { ngDebug } from '../../src/utilities/environment-options'; import { writeErrorToLogFile } from '../../src/utilities/log-file'; @@ -80,6 +81,10 @@ export default async function (options: { cliArgs: string[] }) { } catch (err) { if (err instanceof CommandModuleError) { logger.fatal(`Error: ${err.message}`); + } else if (err instanceof PackageManagerError) { + const errorMessage = `Error: Package installation failed ${err.message}`; + const output = err.stderr || err.stdout; + logger.fatal(output ? `${errorMessage}\n${output}` : errorMessage); } else if (err instanceof Error) { try { const logPath = writeErrorToLogFile(err);