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

Function serve

playground/legacy/__tests__/client-and-ssr/serve.ts:8–59  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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

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