From 9116893c184cf5311d4414cb0bc921f908a076af Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Thu, 23 May 2024 13:55:08 +0200 Subject: [PATCH] fix(@angular/build): handle esbuild-browser `polyfills` option as `string` during `ng serve` With `esbuild-browser` the `polyfills` option can be a string which was not handled properly. Closes #27693 --- .../angular/build/src/builders/dev-server/vite-server.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/angular/build/src/builders/dev-server/vite-server.ts b/packages/angular/build/src/builders/dev-server/vite-server.ts index a039a849fde8..d0f87c736793 100644 --- a/packages/angular/build/src/builders/dev-server/vite-server.ts +++ b/packages/angular/build/src/builders/dev-server/vite-server.ts @@ -248,7 +248,12 @@ export async function* serveWithVite( const { root = '' } = await context.getProjectMetadata(projectName); const projectRoot = join(context.workspaceRoot, root as string); const browsers = getSupportedBrowsers(projectRoot, context.logger); + const target = transformSupportedBrowsersToTargets(browsers); + // Needed for browser-esbuild as polyfills can be a string. + const polyfills = Array.isArray((browserOptions.polyfills ??= [])) + ? browserOptions.polyfills + : [browserOptions.polyfills]; // Setup server and start listening const serverConfiguration = await setupServer( @@ -260,7 +265,7 @@ export async function* serveWithVite( !!browserOptions.ssr, prebundleTransformer, target, - isZonelessApp(browserOptions.polyfills), + isZonelessApp(polyfills), browserOptions.loader as EsbuildLoaderOption | undefined, extensions?.middleware, transformers?.indexHtml,