@@ -10,7 +10,7 @@ import {
10
10
11
11
import { Schema } from '@angular-devkit/build-angular/src/builders/application/schema' ;
12
12
13
- import { buildApplication } from '@angular-devkit/build-angular/src/builders/application' ;
13
+ import { buildApplication , ApplicationBuilderOptions } from '@angular-devkit/build-angular/src/builders/application' ;
14
14
15
15
import { serveWithVite } from '@angular-devkit/build-angular/src/builders/dev-server/vite-server' ;
16
16
import { DevServerBuilderOptions } from '@angular-devkit/build-angular/src/builders/dev-server' ;
@@ -116,11 +116,21 @@ export async function* runBuilder(
116
116
117
117
setLogLevel ( options . verbose ? 'verbose' : 'info' ) ;
118
118
119
- const outputPath = path . join ( options . outputPath , 'browser' ) ;
119
+ const outputPath = options . outputPath ;
120
+
121
+ const outputOptions : Required < Exclude < ApplicationBuilderOptions [ 'outputPath' ] , string > > = {
122
+ browser : 'browser' ,
123
+ server : 'server' ,
124
+ media : 'media' ,
125
+ ...( typeof outputPath === 'string' ? undefined : outputPath ) ,
126
+ base : typeof outputPath === 'string' ? outputPath : outputPath . base
127
+ }
128
+
129
+ const browserOutputPath = path . join ( outputOptions . base , outputOptions . browser ) ;
120
130
121
131
const fedOptions : FederationOptions = {
122
132
workspaceRoot : context . workspaceRoot ,
123
- outputPath : outputPath ,
133
+ outputPath : browserOutputPath ,
124
134
federationConfig : infereConfigPath ( options . tsConfig ) ,
125
135
tsConfig : options . tsConfig ,
126
136
verbose : options . verbose ,
@@ -176,12 +186,12 @@ export async function* runBuilder(
176
186
let first = true ;
177
187
let lastResult : { success : boolean } | undefined ;
178
188
179
- if ( existsSync ( outputPath ) ) {
180
- rmSync ( outputPath , { recursive : true } ) ;
189
+ if ( existsSync ( fedOptions . outputPath ) ) {
190
+ rmSync ( fedOptions . outputPath , { recursive : true } ) ;
181
191
}
182
192
183
- if ( ! existsSync ( outputPath ) ) {
184
- mkdirSync ( outputPath , { recursive : true } ) ;
193
+ if ( ! existsSync ( fedOptions . outputPath ) ) {
194
+ mkdirSync ( fedOptions . outputPath , { recursive : true } ) ;
185
195
}
186
196
187
197
if ( ! write ) {
@@ -241,7 +251,7 @@ export async function* runBuilder(
241
251
}
242
252
243
253
if ( first && runServer ) {
244
- startServer ( nfOptions , options . outputPath , memResults ) ;
254
+ startServer ( nfOptions , fedOptions . outputPath , memResults ) ;
245
255
}
246
256
247
257
if ( ! first && runServer ) {
0 commit comments