From b7c5cd805367c373d34482d8aeaa89afb252c9b6 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Thu, 19 Dec 2019 20:43:33 +0100 Subject: [PATCH] fix(builders): fix `EADDRINUSE` error on rebuilds (#1405) --- modules/builders/src/ssr-dev-server/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/builders/src/ssr-dev-server/index.ts b/modules/builders/src/ssr-dev-server/index.ts index cd7a58255..d1347d4f3 100644 --- a/modules/builders/src/ssr-dev-server/index.ts +++ b/modules/builders/src/ssr-dev-server/index.ts @@ -34,6 +34,7 @@ import { concatMap, debounce, debounceTime, + delay, } from 'rxjs/operators'; import * as browserSync from 'browser-sync'; import { join } from 'path'; @@ -172,8 +173,10 @@ function startNodeServer( const path = join(outputPath, 'main.js'); const env = { ...process.env, PORT: '' + port }; - return spawnAsObservable('node', [`"${path}"`], { env, shell: true }) + return of(null) .pipe( + delay(0), // Avoid EADDRINUSE error since it will cause the kill event to be finish. + switchMap(() => spawnAsObservable('node', [`"${path}"`], { env, shell: true })), tap(({ stderr, stdout }) => { if (stderr) { logger.error(stderr);