@@ -18,8 +18,10 @@ import path, { posix } from 'node:path';
1818import type { Connect , InlineConfig , ViteDevServer } from 'vite' ;
1919import { BuildOutputFile , BuildOutputFileType } from '../../tools/esbuild/bundler-context' ;
2020import { JavaScriptTransformer } from '../../tools/esbuild/javascript-transformer' ;
21+ import { getFeatureSupport , transformSupportedBrowsersToTargets } from '../../tools/esbuild/utils' ;
2122import { createAngularLocaleDataPlugin } from '../../tools/vite/i18n-locale-plugin' ;
2223import { RenderOptions , renderPage } from '../../utils/server-rendering/render-page' ;
24+ import { getSupportedBrowsers } from '../../utils/supported-browsers' ;
2325import { getIndexOutputFile } from '../../utils/webpack-browser-config' ;
2426import { buildEsbuildBrowser } from '../browser-esbuild' ;
2527import { Schema as BrowserBuilderOptions } from '../browser-esbuild/schema' ;
@@ -131,6 +133,16 @@ export async function* serveWithVite(
131133 if ( server ) {
132134 handleUpdate ( generatedFiles , server , serverOptions , context . logger ) ;
133135 } else {
136+ const projectName = context . target ?. project ;
137+ if ( ! projectName ) {
138+ throw new Error ( 'The builder requires a target.' ) ;
139+ }
140+
141+ const { root = '' } = await context . getProjectMetadata ( projectName ) ;
142+ const projectRoot = path . join ( context . workspaceRoot , root as string ) ;
143+ const browsers = getSupportedBrowsers ( projectRoot , context . logger ) ;
144+ const target = transformSupportedBrowsersToTargets ( browsers ) ;
145+
134146 // Setup server and start listening
135147 const serverConfiguration = await setupServer (
136148 serverOptions ,
@@ -140,6 +152,7 @@ export async function* serveWithVite(
140152 browserOptions . externalDependencies ,
141153 ! ! browserOptions . ssr ,
142154 prebundleTransformer ,
155+ target ,
143156 ) ;
144157
145158 server = await createServer ( serverConfiguration ) ;
@@ -295,6 +308,7 @@ export async function setupServer(
295308 prebundleExclude : string [ ] | undefined ,
296309 ssr : boolean ,
297310 prebundleTransformer : JavaScriptTransformer ,
311+ target : string [ ] ,
298312) : Promise < InlineConfig > {
299313 const proxy = await loadProxyConfiguration (
300314 serverOptions . workspaceRoot ,
@@ -556,6 +570,9 @@ export async function setupServer(
556570 entries : [ ] ,
557571 // Add an esbuild plugin to run the Angular linker on dependencies
558572 esbuildOptions : {
573+ // Set esbuild supported targets.
574+ target,
575+ supported : getFeatureSupport ( target ) ,
559576 plugins : [
560577 {
561578 name : 'angular-vite-optimize-deps' ,
0 commit comments