diff --git a/packages/angular/build/src/builders/dev-server/schema.json b/packages/angular/build/src/builders/dev-server/schema.json index 3adce45eb71a..a04829cdfc34 100644 --- a/packages/angular/build/src/builders/dev-server/schema.json +++ b/packages/angular/build/src/builders/dev-server/schema.json @@ -66,9 +66,39 @@ "description": "The pathname where the application will be served." }, "hmr": { - "type": "boolean", - "description": "Enable hot module replacement.", - "default": false + "description": "Disable or configure HMR connection", + "default": false, + "oneOf": [ + { + "type": "object", + "properties": { + "protocol": { + "type": "string", + "description": "The WebSocket protocol used for the HMR connection: ws (WebSocket) or wss (WebSocket Secure)." + }, + "host": { + "type": "string", + "description": "The IP addresses or domain the HMR server should listen on." + }, + "port": { + "type": "number", + "description": "The port the HMR server should listen on." + }, + "overlay": { + "type": "boolean", + "description": "Set to false to disable the server error overlay." + }, + "clientPort": { + "type": "number", + "description": "An advanced option that overrides the port only on the client side, allowing you to serve the websocket on a different port than the client code looks for it on." + } + }, + "additionalProperties": false + }, + { + "type": "boolean" + } + ] }, "watch": { "type": "boolean", diff --git a/packages/angular/build/src/builders/dev-server/vite-server.ts b/packages/angular/build/src/builders/dev-server/vite-server.ts index ac983f9e8a37..c4adc16ef262 100644 --- a/packages/angular/build/src/builders/dev-server/vite-server.ts +++ b/packages/angular/build/src/builders/dev-server/vite-server.ts @@ -218,7 +218,7 @@ export async function* serveWithVite( // TODO: Implement support -- application builder currently does not use break; case ResultKind.ComponentUpdate: - assert(serverOptions.hmr, 'Component updates are only supported with HMR enabled.'); + assert(!!serverOptions.hmr, 'Component updates are only supported with HMR enabled.'); // TODO: Implement support -- application builder currently does not use break; default: @@ -430,7 +430,7 @@ async function handleUpdate( return; } - if (serverOptions.liveReload || serverOptions.hmr) { + if (serverOptions.liveReload || !!serverOptions.hmr) { if (updatedFiles.every((f) => f.endsWith('.css'))) { const timestamp = Date.now(); server.hot.send({ @@ -613,6 +613,7 @@ export async function setupServer( open: serverOptions.open, headers: serverOptions.headers, proxy, + hmr: serverOptions.hmr, cors: { // Allow preflight requests to be proxied. preflightContinue: true,