MCPcopy
hub / github.com/vitejs/vite / serve

Function serve

playground/legacy/__tests__/ssr/serve.ts:8–47  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

6export const port = ports['legacy/ssr']
7
8export async function serve(): Promise<{ close(): Promise<void> }> {
9 const { build } = await import('vite')
10 await build({
11 root: rootDir,
12 logLevel: 'silent',
13 build: {
14 target: 'esnext',
15 ssr: 'entry-server.js',
16 outDir: 'dist/server',
17 },
18 })
19
20 const { default: express } = await import('express')
21 const app = express()
22
23 app.use('/', async (_req, res) => {
24 const { render } = await import(
25 path.resolve(rootDir, './dist/server/entry-server.js')
26 )
27 const html = await render()
28 res.status(200).set({ 'Content-Type': 'text/html' }).end(html)
29 })
30
31 return new Promise((resolve, reject) => {
32 try {
33 const server = app.listen(port, () => {
34 resolve({
35 // for test teardown
36 async close() {
37 await new Promise((resolve) => {
38 server.close(resolve)
39 })
40 },
41 })
42 })
43 } catch (e) {
44 reject(e)
45 }
46 })
47}

Callers

nothing calls this directly

Calls 7

useMethod · 0.80
resolveMethod · 0.65
listenMethod · 0.65
buildFunction · 0.50
renderFunction · 0.50
resolveFunction · 0.50
setMethod · 0.45

Tested by

no test coverage detected