@@ -10,8 +10,8 @@ import { Builder, BuilderContext, createBuilder } from '@angular-devkit/architec
1010import assert from 'node:assert' ;
1111import { resolve as pathResolve } from 'node:path' ;
1212import { Observable , from , isObservable , of , switchMap } from 'rxjs' ;
13- import webpack from 'webpack' ;
14- import WebpackDevServer from 'webpack-dev-server' ;
13+ import type webpack from 'webpack' ;
14+ import type WebpackDevServer from 'webpack-dev-server' ;
1515import { getEmittedFiles , getWebpackConfig } from '../../utils' ;
1616import { BuildResult , WebpackFactory , WebpackLoggingCallback } from '../webpack' ;
1717import { Schema as WebpackDevServerBuilderSchema } from './schema' ;
@@ -44,7 +44,7 @@ export function runWebpackDevServer(
4444 return of ( result ) ;
4545 }
4646 } else {
47- return of ( webpack ( c ) ) ;
47+ return from ( import ( ' webpack' ) . then ( ( mod ) => mod . default ( c ) ) ) ;
4848 }
4949 } ;
5050
@@ -54,9 +54,9 @@ export function runWebpackDevServer(
5454 ) => {
5555 if ( options . webpackDevServerFactory ) {
5656 return new options . webpackDevServerFactory ( config , webpack ) ;
57+ } else {
58+ return from ( import ( 'webpack-dev-server' ) . then ( ( mod ) => new mod . default ( config , webpack ) ) ) ;
5759 }
58-
59- return new WebpackDevServer ( config , webpack ) ;
6060 } ;
6161
6262 const {
@@ -70,16 +70,21 @@ export function runWebpackDevServer(
7070 } = options ;
7171
7272 return createWebpack ( { ...config , watch : false } ) . pipe (
73+ switchMap ( async ( webpackCompiler ) => {
74+ return [
75+ webpackCompiler ,
76+ options . webpackDevServerFactory ?? ( await import ( 'webpack-dev-server' ) ) . default ,
77+ ] as unknown as [ webpack . Compiler | null , WebpackDevServerFactory ] ;
78+ } ) ,
7379 switchMap (
74- ( webpackCompiler ) =>
80+ ( [ webpackCompiler , webpackDevServerFactory ] ) =>
7581 new Observable < DevServerBuildOutput > ( ( obs ) => {
7682 assert ( webpackCompiler , 'Webpack compiler factory did not return a compiler instance.' ) ;
7783
7884 const devServerConfig = options . devServerConfig || config . devServer || { } ;
7985 devServerConfig . host ??= 'localhost' ;
8086
8187 let result : Partial < DevServerBuildOutput > ;
82-
8388 const statsOptions = typeof config . stats === 'boolean' ? undefined : config . stats ;
8489
8590 webpackCompiler . hooks . done . tap ( 'build-webpack' , ( stats ) => {
@@ -94,7 +99,7 @@ export function runWebpackDevServer(
9499 } as unknown as DevServerBuildOutput ) ;
95100 } ) ;
96101
97- const devServer = createWebpackDevServer ( webpackCompiler , devServerConfig ) ;
102+ const devServer = new webpackDevServerFactory ( devServerConfig , webpackCompiler ) ;
98103 devServer . startCallback ( ( err ) => {
99104 if ( err ) {
100105 obs . error ( err ) ;
0 commit comments