@@ -15,7 +15,7 @@ import {
15
15
import { json , logging , tags } from '@angular-devkit/core' ;
16
16
import * as browserSync from 'browser-sync' ;
17
17
import { createProxyMiddleware } from 'http-proxy-middleware' ;
18
- import { join } from 'path' ;
18
+ import { join , resolve as pathResolve } from 'path' ;
19
19
import {
20
20
EMPTY ,
21
21
Observable ,
@@ -62,7 +62,6 @@ export function execute(
62
62
const browserTarget = targetFromTargetString ( options . browserTarget ) ;
63
63
const serverTarget = targetFromTargetString ( options . serverTarget ) ;
64
64
const getBaseUrl = ( bs : browserSync . BrowserSyncInstance ) => `${ bs . getOption ( 'scheme' ) } ://${ bs . getOption ( 'host' ) } :${ bs . getOption ( 'port' ) } ` ;
65
-
66
65
const browserTargetRun = context . scheduleTarget ( browserTarget , {
67
66
serviceWorker : false ,
68
67
watch : true ,
@@ -136,7 +135,7 @@ export function execute(
136
135
137
136
return of ( builderOutput ) ;
138
137
} else {
139
- return from ( initBrowserSync ( bsInstance , nodeServerPort , options ) )
138
+ return from ( initBrowserSync ( bsInstance , nodeServerPort , options , context ) )
140
139
. pipe (
141
140
tap ( bs => {
142
141
const baseUrl = getBaseUrl ( bs ) ;
@@ -207,6 +206,7 @@ async function initBrowserSync(
207
206
browserSyncInstance : browserSync . BrowserSyncInstance ,
208
207
nodeServerPort : number ,
209
208
options : SSRDevServerBuilderOptions ,
209
+ context : BuilderContext ,
210
210
) : Promise < browserSync . BrowserSyncInstance > {
211
211
if ( browserSyncInstance . active ) {
212
212
return browserSyncInstance ;
@@ -237,6 +237,7 @@ async function initBrowserSync(
237
237
ghostMode : false ,
238
238
logLevel : 'silent' ,
239
239
open,
240
+ https : getSslConfig ( context . workspaceRoot , options ) ,
240
241
} ;
241
242
242
243
const publicHostNormalized = publicHost && publicHost . endsWith ( '/' )
@@ -306,4 +307,19 @@ function mapErrorToMessage(error: unknown): string {
306
307
return '' ;
307
308
}
308
309
310
+ function getSslConfig (
311
+ root : string ,
312
+ options : SSRDevServerBuilderOptions ,
313
+ ) : browserSync . HttpsOptions | undefined | boolean {
314
+ const { ssl, sslCert, sslKey } = options ;
315
+ if ( ssl && sslCert && sslKey ) {
316
+ return {
317
+ key : pathResolve ( root , sslKey ) ,
318
+ cert : pathResolve ( root , sslCert ) ,
319
+ } ;
320
+ }
321
+
322
+ return ssl ;
323
+ }
324
+
309
325
export default createBuilder < SSRDevServerBuilderOptions , BuilderOutput > ( execute ) ;
0 commit comments