Skip to content

Commit bdc20b5

Browse files
committed
chore: simplify vite-express example
1 parent 667dde6 commit bdc20b5

2 files changed

Lines changed: 13 additions & 21 deletions

File tree

examples/vite-express/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"scripts": {
1818
"build": "rimraf dist && cross-env NODE_ENV=production vite build --app",
1919
"dev": "vite",
20-
"preview": "vite build --app && vite preview",
20+
"preview": "npm run build && npm start",
2121
"start": "cross-env NODE_ENV=production node --enable-source-maps index.ts"
2222
},
2323
"type": "module"
Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
import type { Request, Response } from "express";
2-
import { type Connect, defineConfig } from "vite";
2+
import { defineConfig } from "vite";
33
import marko from "@marko/vite";
44

5-
type App = Promise<typeof import("./src/index.ts")>;
6-
7-
const DEV_ENTRY = "./src/index.ts";
8-
const PROD_ENTRY = import.meta.resolve("./dist/index.js");
9-
105
export default defineConfig({
116
build: {
12-
ssr: DEV_ENTRY,
7+
ssr: "./src/index.ts",
138
sourcemap: true, // Generate sourcemaps for all builds.
149
emptyOutDir: false, // Avoid server & client deleting files from each other.
1510
},
@@ -18,20 +13,17 @@ export default defineConfig({
1813
{
1914
name: "preview",
2015
configureServer(server) {
21-
server.middlewares.use(
22-
render(() => server.ssrLoadModule(DEV_ENTRY) as App),
23-
);
24-
},
25-
configurePreviewServer(server) {
26-
server.middlewares.use(render(() => import(PROD_ENTRY) as App));
16+
server.middlewares.use(async (req, res, next) => {
17+
try {
18+
const { router } = (await server.ssrLoadModule(
19+
"./src/index.ts",
20+
)) as typeof import("./src/index.ts");
21+
router(req as Request, res as Response, next);
22+
} catch (err) {
23+
next(err);
24+
}
25+
});
2726
},
2827
},
2928
],
3029
});
31-
32-
function render(app: () => App): Connect.NextHandleFunction {
33-
return (req, res, next) =>
34-
app()
35-
.then(({ router }) => router(req as Request, res as Response, next))
36-
.catch(next);
37-
}

0 commit comments

Comments
 (0)