From 9b9ad25d457184b946d50721f1e5ab18b5491f65 Mon Sep 17 00:00:00 2001 From: Logan McAnsh Date: Mon, 16 May 2022 12:27:34 -0400 Subject: [PATCH 1/5] fix(remix-dev): re-use REMIX_DEV_SERVER_WS_PORT when reloading config closes REM-1091 closes #2958 Signed-off-by: Logan McAnsh --- packages/remix-dev/__tests__/readConfig-test.ts | 5 +++++ packages/remix-dev/config.ts | 17 ++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/remix-dev/__tests__/readConfig-test.ts b/packages/remix-dev/__tests__/readConfig-test.ts index 6d7dc58b0c5..92af7767d63 100644 --- a/packages/remix-dev/__tests__/readConfig-test.ts +++ b/packages/remix-dev/__tests__/readConfig-test.ts @@ -52,4 +52,9 @@ describe("readConfig", () => { ` ); }); + + it("returns the same devServerPort value across reloads", async () => { + let newConfig = await readConfig(remixRoot); + expect(newConfig.devServerPort).toBe(config.devServerPort); + }); }); diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index 8f0cc2b9128..e8169fc6893 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -353,12 +353,19 @@ export async function readConfig( path.join("public", "build") ); - if (typeof appConfig.devServerPort !== "number") { - appConfig.devServerPort = Number( - process.env.REMIX_DEV_SERVER_WS_PORT || 8002 - ); + let devServerPort: number; + + // check if the port is already in use as this file is reloaded after a dep install or config change + if (process.env.REMIX_DEV_SERVER_WS_PORT) { + try { + devServerPort = Number(process.env.REMIX_DEV_SERVER_WS_PORT); + } catch (error: unknown) { + // failed to parse the port as a number + devServerPort = await getPort({ port: appConfig.devServerPort }); + } + } else { + devServerPort = await getPort({ port: appConfig.devServerPort }); } - let devServerPort = await getPort({ port: appConfig.devServerPort }); // set env variable so un-bundled servers can use it process.env.REMIX_DEV_SERVER_WS_PORT = `${devServerPort}`; let devServerBroadcastDelay = appConfig.devServerBroadcastDelay || 0; From a600343dd8abf33d9052d88baaa39540df32148d Mon Sep 17 00:00:00 2001 From: Logan McAnsh Date: Mon, 16 May 2022 21:10:34 -0400 Subject: [PATCH 2/5] chore(remix-dev): NaN fallback Signed-off-by: Logan McAnsh --- packages/remix-dev/config.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index e8169fc6893..7ad2b6a46e6 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -357,12 +357,9 @@ export async function readConfig( // check if the port is already in use as this file is reloaded after a dep install or config change if (process.env.REMIX_DEV_SERVER_WS_PORT) { - try { - devServerPort = Number(process.env.REMIX_DEV_SERVER_WS_PORT); - } catch (error: unknown) { - // failed to parse the port as a number - devServerPort = await getPort({ port: appConfig.devServerPort }); - } + devServerPort = + Number(process.env.REMIX_DEV_SERVER_WS_PORT) || + (await getPort({ port: appConfig.devServerPort })); } else { devServerPort = await getPort({ port: appConfig.devServerPort }); } From 0ea063198f2a80c828fa82bc1caab1de44b627cb Mon Sep 17 00:00:00 2001 From: Logan McAnsh Date: Tue, 17 May 2022 11:19:22 -0400 Subject: [PATCH 3/5] Update packages/remix-dev/config.ts Co-authored-by: Kent C. Dodds --- packages/remix-dev/config.ts | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index 7ad2b6a46e6..6e1b4b453b4 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -353,15 +353,7 @@ export async function readConfig( path.join("public", "build") ); - let devServerPort: number; - - // check if the port is already in use as this file is reloaded after a dep install or config change - if (process.env.REMIX_DEV_SERVER_WS_PORT) { - devServerPort = - Number(process.env.REMIX_DEV_SERVER_WS_PORT) || - (await getPort({ port: appConfig.devServerPort })); - } else { - devServerPort = await getPort({ port: appConfig.devServerPort }); + let devServerPort = Number(process.env.REMIX_DEV_SERVER_WS_PORT) || await getPort({ port: Number(appConfig.devServerPort) || null }); } // set env variable so un-bundled servers can use it process.env.REMIX_DEV_SERVER_WS_PORT = `${devServerPort}`; From 14963ea3fc0b41dd9d81e8e28e4a9c7da83de37b Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Tue, 17 May 2022 09:22:26 -0600 Subject: [PATCH 4/5] Update packages/remix-dev/config.ts --- packages/remix-dev/config.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index 6e1b4b453b4..0c4acfac4f8 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -354,7 +354,6 @@ export async function readConfig( ); let devServerPort = Number(process.env.REMIX_DEV_SERVER_WS_PORT) || await getPort({ port: Number(appConfig.devServerPort) || null }); - } // set env variable so un-bundled servers can use it process.env.REMIX_DEV_SERVER_WS_PORT = `${devServerPort}`; let devServerBroadcastDelay = appConfig.devServerBroadcastDelay || 0; From f33858460784ff13b696076bfb55f40b11d02254 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Tue, 17 May 2022 09:25:05 -0600 Subject: [PATCH 5/5] Update packages/remix-dev/config.ts --- packages/remix-dev/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index 0c4acfac4f8..bc1f8523263 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -353,7 +353,7 @@ export async function readConfig( path.join("public", "build") ); - let devServerPort = Number(process.env.REMIX_DEV_SERVER_WS_PORT) || await getPort({ port: Number(appConfig.devServerPort) || null }); + let devServerPort = Number(process.env.REMIX_DEV_SERVER_WS_PORT) || await getPort({ port: Number(appConfig.devServerPort) || undefined }); // set env variable so un-bundled servers can use it process.env.REMIX_DEV_SERVER_WS_PORT = `${devServerPort}`; let devServerBroadcastDelay = appConfig.devServerBroadcastDelay || 0;