Skip to content

Commit 5a2f5d2

Browse files
chohnerrbrtrfl
andcommitted
fix(server): enable HMR
Co-Authored-By: Rafael Falk <[email protected]>
1 parent 84d8b1b commit 5a2f5d2

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

app/expressApp.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
/* eslint-disable no-console */
2-
/* eslint-disable import/no-named-as-default-member */
1+
/* eslint-disable import/no-named-as-default-member, no-console */
32
import { createRequestHandler } from "@remix-run/express";
43
import type { ServerBuild } from "@remix-run/node";
54
import * as Sentry from "@sentry/remix";
@@ -11,6 +10,7 @@ import { config } from "./services/env/env.server";
1110
import { createRateLimitRequestHandler } from "./services/rateLimit";
1211
import { createRedisClient, quitRedis } from "./services/redis/redisClient";
1312

13+
// expressApp() itself is not hot reloaded
1414
export const expressApp = (
1515
build: ServerBuild,
1616
viteDevServer: ViteDevServer,

server.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,14 @@ const viteDevServer = shouldStartDevServer
88
: undefined;
99

1010
const build = viteDevServer
11-
? await viteDevServer.ssrLoadModule("virtual:remix/server-build")
11+
? () => viteDevServer.ssrLoadModule("virtual:remix/server-build")
1212
: await import("./build/server/index.js");
1313

14-
const { app, cleanup } = build.entry.module.expressApp(build, viteDevServer);
14+
// When running a dev server, build() is a function to enable HMR
15+
// To access expressApp(), we need to execute it once
16+
const initialBuild = typeof build === "function" ? await build() : build;
17+
const { expressApp } = await initialBuild.entry.module;
18+
const { app, cleanup } = expressApp(build, viteDevServer);
1519

1620
const port = process.env.PORT || 3000;
1721
const server = app.listen(port, () =>

0 commit comments

Comments
 (0)