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

Function serve

playground/ssr-conditions/__tests__/serve.ts:10–62  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

8export const port = ports['ssr-conditions']
9
10export async function serve(): Promise<{ close(): Promise<void> }> {
11 if (isBuild) {
12 // build first
13 const { build } = await import('vite')
14 // client build
15 await build({
16 root: rootDir,
17 logLevel: 'silent', // exceptions are logged by Vitest
18 build: {
19 minify: false,
20 outDir: 'dist/client',
21 },
22 })
23 // server build
24 await build({
25 root: rootDir,
26 logLevel: 'silent',
27 build: {
28 ssr: 'src/app.js',
29 outDir: 'dist/server',
30 },
31 })
32 }
33
34 await kill(port)
35
36 const { createServer } = await import(path.resolve(rootDir, 'server.js'))
37 const { app, vite } = await createServer(
38 rootDir,
39 isBuild,
40 hmrPorts['ssr-conditions'],
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 if (vite) {
53 await vite.close()
54 }
55 },
56 })
57 })
58 } catch (e) {
59 reject(e)
60 }
61 })
62}

Callers

nothing calls this directly

Calls 5

resolveMethod · 0.65
listenMethod · 0.65
buildFunction · 0.50
createServerFunction · 0.50
resolveFunction · 0.50

Tested by

no test coverage detected