@@ -18,7 +18,9 @@ import type { AddressInfo } from 'node:net';
1818import path , { posix } from 'node:path' ;
1919import { Connect , InlineConfig , ViteDevServer , createServer , normalizePath } from 'vite' ;
2020import { JavaScriptTransformer } from '../../tools/esbuild/javascript-transformer' ;
21+ import { getFeatureSupport , transformSupportedBrowsersToTargets } from '../../tools/esbuild/utils' ;
2122import { RenderOptions , renderPage } from '../../utils/server-rendering/render-page' ;
23+ import { getSupportedBrowsers } from '../../utils/supported-browsers' ;
2224import { buildEsbuildBrowser } from '../browser-esbuild' ;
2325import { Schema as BrowserBuilderOptions } from '../browser-esbuild/schema' ;
2426import { loadProxyConfiguration } from './load-proxy-config' ;
@@ -88,6 +90,16 @@ export async function* serveWithVite(
8890 if ( server ) {
8991 handleUpdate ( generatedFiles , server , serverOptions , context . logger ) ;
9092 } else {
93+ const projectName = context . target ?. project ;
94+ if ( ! projectName ) {
95+ throw new Error ( 'The builder requires a target.' ) ;
96+ }
97+
98+ const { root = '' } = await context . getProjectMetadata ( projectName ) ;
99+ const projectRoot = path . join ( context . workspaceRoot , root as string ) ;
100+ const browsers = getSupportedBrowsers ( projectRoot , context . logger ) ;
101+ const target = transformSupportedBrowsersToTargets ( browsers ) ;
102+
91103 // Setup server and start listening
92104 const serverConfiguration = await setupServer (
93105 serverOptions ,
@@ -96,6 +108,7 @@ export async function* serveWithVite(
96108 browserOptions . preserveSymlinks ,
97109 browserOptions . externalDependencies ,
98110 ! ! browserOptions . ssr ,
111+ target ,
99112 ) ;
100113
101114 server = await createServer ( serverConfiguration ) ;
@@ -237,6 +250,7 @@ export async function setupServer(
237250 preserveSymlinks : boolean | undefined ,
238251 prebundleExclude : string [ ] | undefined ,
239252 ssr : boolean ,
253+ target : string [ ] ,
240254) : Promise < InlineConfig > {
241255 const proxy = await loadProxyConfiguration (
242256 serverOptions . workspaceRoot ,
@@ -494,6 +508,9 @@ export async function setupServer(
494508 entries : [ ] ,
495509 // Add an esbuild plugin to run the Angular linker on dependencies
496510 esbuildOptions : {
511+ // Set esbuild supported targets.
512+ target,
513+ supported : getFeatureSupport ( target ) ,
497514 plugins : [
498515 {
499516 name : 'angular-vite-optimize-deps' ,
0 commit comments