From 7537badfe5ca4f156e7fd82a732fbf53862377cd Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 3 Mar 2025 11:35:06 +0000 Subject: [PATCH] fix(@schematics/angular): prevent accidental deletion of `main.ts` during application builder migration In certain cases, misconfiguration of the server builder could cause the migration process to incorrectly delete `main.ts`. Closes: #29661 --- .../angular/migrations/use-application-builder/migration.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/schematics/angular/migrations/use-application-builder/migration.ts b/packages/schematics/angular/migrations/use-application-builder/migration.ts index 40f2740e9463..1ca18961084b 100644 --- a/packages/schematics/angular/migrations/use-application-builder/migration.ts +++ b/packages/schematics/angular/migrations/use-application-builder/migration.ts @@ -151,7 +151,10 @@ function* updateBuildTarget( // Update server file const ssrMainFile = serverTarget?.options?.['main']; if (typeof ssrMainFile === 'string') { - yield deleteFile(ssrMainFile); + // Do not delete the server main file if it's the same as the browser file. + if (buildTarget.options?.browser !== ssrMainFile) { + yield deleteFile(ssrMainFile); + } yield externalSchematic('@schematics/angular', 'ssr', { project: projectName,