From 779eac4bb7c829ad34c6c8f40d17acb392917d96 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 12 Jun 2025 07:02:49 +0000 Subject: [PATCH] fix(@schematics/angular): include `main.server.ts` in `tsconfig.files` when present Add logic to automatically include `main.server.ts` in the `files` array of the tsconfig when present during schematic execution. This ensures backwards compatibility for applications generated prior to version 19. Closes #30526 --- packages/schematics/angular/server/index.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/schematics/angular/server/index.ts b/packages/schematics/angular/server/index.ts index 50f624e078cd..484a8f03a4ab 100644 --- a/packages/schematics/angular/server/index.ts +++ b/packages/schematics/angular/server/index.ts @@ -119,6 +119,14 @@ function updateConfigFileApplicationBuilder(options: ServerOptions): Rule { function updateTsConfigFile(tsConfigPath: string): Rule { return (host: Tree) => { const json = new JSONFile(host, tsConfigPath); + // Skip adding the files entry if the server entry would already be included. + const include = json.get(['include']); + if (!Array.isArray(include) || !include.includes('src/**/*.ts')) { + const filesPath = ['files']; + const files = new Set((json.get(filesPath) as string[] | undefined) ?? []); + files.add('src/' + serverMainEntryName); + json.modify(filesPath, [...files]); + } const typePath = ['compilerOptions', 'types']; const types = new Set((json.get(typePath) as string[] | undefined) ?? []);