Skip to content

Commit bb1c531

Browse files
committed
fix(dev): dev server port priority
1. <LiveReload port /> prop 2. `unstable_dev` `--port` flag 3. `unstable_dev.port` config option 4. REMIX_DEV_SERVER_WS_PORT env var (TODO: remove in v2) 5. default: 8002 (TODO: remove in v2)
1 parent d8c437b commit bb1c531

File tree

10 files changed

+13
-16
lines changed

10 files changed

+13
-16
lines changed

packages/remix-dev/cli/commands.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,6 @@ export async function build(
179179
if (mode === "development" && config.future.unstable_dev) {
180180
let origin = await resolveDevOrigin(config);
181181
options.devHttpOrigin = origin;
182-
options.devWebSocketPort = origin.port; // TODO: ?
183182
}
184183

185184
fse.emptyDirSync(config.assetsBuildDirectory);

packages/remix-dev/compiler/options.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,4 @@ export type Options = {
1111
host: string;
1212
port: number;
1313
};
14-
devWebSocketPort?: number;
1514
};

packages/remix-dev/compiler/server/plugins/entry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ ${Object.keys(config.routes)
5151
export const publicPath = ${JSON.stringify(config.publicPath)};
5252
export const entry = { module: entryServer };
5353
${
54-
options.devWebSocketPort
54+
options.devHttpOrigin
5555
? `export const dev = ${JSON.stringify({
56-
websocketPort: options.devWebSocketPort,
56+
port: options.devHttpOrigin.port,
5757
})}`
5858
: ""
5959
}

packages/remix-dev/devServer_unstable/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ export let serve = async (
139139
sourcemap: true,
140140
onWarning: warnOnce,
141141
devHttpOrigin: origin,
142-
devWebSocketPort: origin.port,
143142
},
144143
},
145144
{

packages/remix-react/__tests__/components-test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,22 +47,22 @@ describe("<LiveReload />", () => {
4747
LiveReload = require("../components").LiveReload;
4848
let { container } = render(<LiveReload />);
4949
expect(container.querySelector("script")).toHaveTextContent(
50-
"let port = (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.websocketPort) || 8002;"
50+
"let port = undefined || (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.port) || 8002;"
5151
);
5252
});
5353

5454
it("can set the port explicitly", () => {
5555
let { container } = render(<LiveReload port={4321} />);
5656
expect(container.querySelector("script")).toHaveTextContent(
57-
"let port = (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.websocketPort) || 4321;"
57+
"let port = 4321 || (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.port) || 8002;"
5858
);
5959
});
6060

6161
it("determines the right port based on REMIX_DEV_SERVER_WS_PORT env variable", () => {
6262
process.env.REMIX_DEV_SERVER_WS_PORT = "1234";
6363
let { container } = render(<LiveReload />);
6464
expect(container.querySelector("script")).toHaveTextContent(
65-
"let port = (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.websocketPort) || 1234;"
65+
"let port = undefined || (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.port) || 1234;"
6666
);
6767
});
6868

packages/remix-react/browser.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ declare global {
2424
// The number of active deferred keys rendered on the server
2525
a?: number;
2626
dev?: {
27-
websocketPort?: number;
27+
port?: number;
2828
hmrRuntime?: string;
2929
};
3030
};

packages/remix-react/components.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1714,7 +1714,7 @@ export const LiveReload =
17141714
? () => null
17151715
: function LiveReload({
17161716
// TODO: remove REMIX_DEV_SERVER_WS_PORT in v2
1717-
port = Number(process.env.REMIX_DEV_SERVER_WS_PORT || 8002),
1717+
port,
17181718
timeoutMs = 1000,
17191719
nonce = undefined,
17201720
}: {
@@ -1732,9 +1732,9 @@ export const LiveReload =
17321732
function remixLiveReloadConnect(config) {
17331733
let protocol = location.protocol === "https:" ? "wss:" : "ws:";
17341734
let host = location.hostname;
1735-
let port = (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.websocketPort) || ${String(
1736-
port
1737-
)};
1735+
let port = ${port} || (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.port) || ${Number(
1736+
process.env.REMIX_DEV_SERVER_WS_PORT || 8002
1737+
)};
17381738
let socketPath = protocol + "//" + host + ":" + port + "/socket";
17391739
let ws = new WebSocket(socketPath);
17401740
ws.onmessage = async (message) => {

packages/remix-react/entry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export interface RemixContextObject {
1010
serverHandoffString?: string;
1111
future: FutureConfig;
1212
abortDelay?: number;
13-
dev?: { websocketPort: number };
13+
dev?: { port: number };
1414
}
1515

1616
// Additional React-Router information needed at runtime, but not hydrated

packages/remix-server-runtime/build.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export interface ServerBuild {
1515
publicPath: string;
1616
assetsBuildDirectory: string;
1717
future: FutureConfig;
18-
dev?: { websocketPort: number };
18+
dev?: { port: number };
1919
}
2020

2121
export interface HandleDocumentRequestFunction {

packages/remix-server-runtime/serverHandoff.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export function createServerHandoffString<T>(serverHandoff: {
2020
// we'd end up including duplicate info
2121
state: ValidateShape<T, HydrationState>;
2222
future: FutureConfig;
23-
dev?: { websocketPort: number };
23+
dev?: { port: number };
2424
}): string {
2525
// Uses faster alternative of jsesc to escape data returned from the loaders.
2626
// This string is inserted directly into the HTML in the `<Scripts>` element.

0 commit comments

Comments
 (0)