Skip to content

Commit 1c09b52

Browse files
authored
Fix express middleware and dev script loading mocks (#1076)
* Update `dev` scripts to reference `index.ts` instead of `server/index.ts` * Load middleware before loading dev server
1 parent bac7bd4 commit 1c09b52

File tree

2 files changed

+41
-41
lines changed

2 files changed

+41
-41
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
},
1212
"scripts": {
1313
"build": "react-router build",
14-
"dev": "cross-env NODE_ENV=development MOCKS=true node server/index.ts",
15-
"dev:no-mocks": "cross-env NODE_ENV=development node ./server/index.ts",
14+
"dev": "cross-env NODE_ENV=development MOCKS=true node index.ts",
15+
"dev:no-mocks": "cross-env NODE_ENV=development node index.ts",
1616
"format": "prettier --write .",
1717
"lint": "eslint .",
1818
"setup": "npm run build && prisma migrate deploy && prisma generate --sql && playwright install",

server/index.ts

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -22,45 +22,6 @@ if (SENTRY_ENABLED) {
2222

2323
const app = express()
2424

25-
if (IS_DEV) {
26-
console.log('Starting development server')
27-
const viteDevServer = await import('vite').then((vite) =>
28-
vite.createServer({
29-
server: { middlewareMode: true },
30-
// We tell Vite we are running a custom app instead of
31-
// the SPA default so it doesn't run HTML middleware
32-
appType: 'custom',
33-
}),
34-
)
35-
app.use(viteDevServer.middlewares)
36-
app.use(async (req, res, next) => {
37-
try {
38-
const source = await viteDevServer.ssrLoadModule('./server/app.ts')
39-
return await source.app(req, res, next)
40-
} catch (error) {
41-
if (typeof error === 'object' && error instanceof Error) {
42-
viteDevServer.ssrFixStacktrace(error)
43-
}
44-
next(error)
45-
}
46-
})
47-
} else {
48-
console.log('Starting production server')
49-
// React Router fingerprints its assets so we can cache forever.
50-
app.use(
51-
'/assets',
52-
express.static('build/client/assets', {
53-
immutable: true,
54-
maxAge: '1y',
55-
fallthrough: false,
56-
}),
57-
)
58-
// Everything else (like favicon.ico) is cached for an hour. You may want to be
59-
// more aggressive with this caching.
60-
app.use(express.static('build/client', { maxAge: '1h' }))
61-
app.use(await import(BUILD_PATH).then((mod) => mod.app))
62-
}
63-
6425
const getHost = (req: { get: (key: string) => string | undefined }) =>
6526
req.get('X-Forwarded-Host') ?? req.get('host') ?? ''
6627

@@ -193,6 +154,45 @@ if (!ALLOW_INDEXING) {
193154
})
194155
}
195156

157+
if (IS_DEV) {
158+
console.log('Starting development server')
159+
const viteDevServer = await import('vite').then((vite) =>
160+
vite.createServer({
161+
server: { middlewareMode: true },
162+
// We tell Vite we are running a custom app instead of
163+
// the SPA default so it doesn't run HTML middleware
164+
appType: 'custom',
165+
}),
166+
)
167+
app.use(viteDevServer.middlewares)
168+
app.use(async (req, res, next) => {
169+
try {
170+
const source = await viteDevServer.ssrLoadModule('./server/app.ts')
171+
return await source.app(req, res, next)
172+
} catch (error) {
173+
if (typeof error === 'object' && error instanceof Error) {
174+
viteDevServer.ssrFixStacktrace(error)
175+
}
176+
next(error)
177+
}
178+
})
179+
} else {
180+
console.log('Starting production server')
181+
// React Router fingerprints its assets so we can cache forever.
182+
app.use(
183+
'/assets',
184+
express.static('build/client/assets', {
185+
immutable: true,
186+
maxAge: '1y',
187+
fallthrough: false,
188+
}),
189+
)
190+
// Everything else (like favicon.ico) is cached for an hour. You may want to be
191+
// more aggressive with this caching.
192+
app.use(express.static('build/client', { maxAge: '1h' }))
193+
app.use(await import(BUILD_PATH).then((mod) => mod.app))
194+
}
195+
196196
const desiredPort = Number(process.env.PORT || 3000)
197197
const portToUse = await getPort({
198198
port: portNumbers(desiredPort, desiredPort + 100),

0 commit comments

Comments
 (0)