From 15f30e73509fda68e0ae9a1f7d388d0046cb3b62 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 10 Nov 2025 08:42:46 +0000 Subject: [PATCH] =?UTF-8?q?fix(@angular/ssr):=20handle=20undefined=20`?= =?UTF-8?q?=C9=B5getOrCreateAngularServerApp`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change fixes 'Error: ɵgetOrCreateAngularServerApp is not a function' which can occur when the dev server stops updating if the user saves while the HTML is in an invalid state. Closes #31671 --- packages/angular/ssr/src/app-engine.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/angular/ssr/src/app-engine.ts b/packages/angular/ssr/src/app-engine.ts index dd204a4b595f..12919de67ba4 100644 --- a/packages/angular/ssr/src/app-engine.ts +++ b/packages/angular/ssr/src/app-engine.ts @@ -142,12 +142,17 @@ export class AngularAppEngine { return null; } + const { ɵgetOrCreateAngularServerApp } = entryPoint; + if (!ɵgetOrCreateAngularServerApp) { + // Sometimes in Vite `ɵgetOrCreateAngularServerApp` is undefined, + // which causes a runtime error `Error: ɵgetOrCreateAngularServerApp is not a function` + // See: https://github.com/angular/angular-cli/issues/31671 + return null; + } + // Note: Using `instanceof` is not feasible here because `AngularServerApp` will // be located in separate bundles, making `instanceof` checks unreliable. - const ɵgetOrCreateAngularServerApp = - entryPoint.ɵgetOrCreateAngularServerApp as typeof getOrCreateAngularServerApp; - - const serverApp = ɵgetOrCreateAngularServerApp({ + const serverApp = (ɵgetOrCreateAngularServerApp as typeof getOrCreateAngularServerApp)({ allowStaticRouteRender: AngularAppEngine.ɵallowStaticRouteRender, hooks: AngularAppEngine.ɵhooks, });