fix: don't reload the prod bundle on refresh
This commit is contained in:
parent
5b716ab5ce
commit
03e6a26b3a
@ -6,6 +6,8 @@ import {
|
|||||||
writeReadableStreamToWritable,
|
writeReadableStreamToWritable,
|
||||||
} from '@react-router/node';
|
} from '@react-router/node';
|
||||||
import mime from 'mime/lite';
|
import mime from 'mime/lite';
|
||||||
|
import type { RequestHandler } from 'react-router';
|
||||||
|
import type { ViteDevServer } from 'vite';
|
||||||
import appContext from '~server/context/app';
|
import appContext from '~server/context/app';
|
||||||
import { loadDevtools, stacksafeTry } from '~server/dev/hot-server';
|
import { loadDevtools, stacksafeTry } from '~server/dev/hot-server';
|
||||||
import prodBuild from '~server/prod-handler';
|
import prodBuild from '~server/prod-handler';
|
||||||
@ -16,18 +18,30 @@ declare global {
|
|||||||
const __hp_prefix: string;
|
const __hp_prefix: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const listener: RequestListener = async (req, res) => {
|
// biome-ignore lint/suspicious/noExplicitAny: Who cares man
|
||||||
|
let devtools: { server: ViteDevServer; handler: any } | undefined = undefined;
|
||||||
|
let prodHandler: RequestHandler | undefined = undefined;
|
||||||
|
let loaded = false;
|
||||||
|
|
||||||
|
async function loadGlobals() {
|
||||||
await hp_loadConfig();
|
await hp_loadConfig();
|
||||||
const devtools = import.meta.env.DEV ? await loadDevtools() : undefined;
|
devtools = import.meta.env.DEV ? await loadDevtools() : undefined;
|
||||||
const prodHandler = import.meta.env.PROD ? await prodBuild() : undefined;
|
prodHandler = import.meta.env.PROD ? await prodBuild() : undefined;
|
||||||
const baseDir = resolve(join('./build', 'client'));
|
loaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
const baseDir = resolve(join('./build', 'client'));
|
||||||
|
export const listener: RequestListener = async (req, res) => {
|
||||||
|
if (!loaded) {
|
||||||
|
await loadGlobals();
|
||||||
|
}
|
||||||
|
|
||||||
const url = new URL(`http://${req.headers.host}${req.url}`);
|
const url = new URL(`http://${req.headers.host}${req.url}`);
|
||||||
|
|
||||||
// build:strip
|
// build:strip
|
||||||
if (devtools) {
|
if (devtools) {
|
||||||
await new Promise((resolve) => {
|
await new Promise((resolve) => {
|
||||||
devtools.server.middlewares(req, res, resolve);
|
devtools?.server.middlewares(req, res, resolve);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user