servePublicMiddleware() — vite Function Reference
Architecture documentation for the servePublicMiddleware() function in static.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD a7dae3c6_6c90_d5b1_7a7e_6ba70a059339["servePublicMiddleware()"] d91d6c8f_e2c2_3b92_12c3_391c9ba06183["static.ts"] a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 -->|defined in| d91d6c8f_e2c2_3b92_12c3_391c9ba06183 24ecf2a1_3c09_d451_76f3_9485b4e993f8["_createServer()"] 24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 449af0c1_44a5_1ad5_ce35_a183c1ef89e6["sirvOptions()"] a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 -->|calls| 449af0c1_44a5_1ad5_ce35_a183c1ef89e6 10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl()"] a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 -->|calls| 10b9dea8_362c_1af2_93be_afa4dd9aed9e a4adb1a7_cf54_091f_eb63_8217e684a8e1["normalizePath()"] a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 -->|calls| a4adb1a7_cf54_091f_eb63_8217e684a8e1 13d1ff08_16f8_81bc_1a7a_cd281614a4d3["isImportRequest()"] a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 -->|calls| 13d1ff08_16f8_81bc_1a7a_cd281614a4d3 02cc1763_d5fc_6d3a_58ef_310caf680b7e["isInternalRequest()"] a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 -->|calls| 02cc1763_d5fc_6d3a_58ef_310caf680b7e style a7dae3c6_6c90_d5b1_7a7e_6ba70a059339 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/server/middlewares/static.ts lines 80–122
export function servePublicMiddleware(
server: ViteDevServer,
publicFiles?: Set<string>,
): Connect.NextHandleFunction {
const dir = server.config.publicDir
const serve = sirv(
dir,
sirvOptions({
config: server.config,
getHeaders: () => server.config.server.headers,
disableFsServeCheck: true,
}),
)
const toFilePath = (url: string) => {
let filePath = cleanUrl(url)
if (filePath.indexOf('%') !== -1) {
try {
filePath = decodeURI(filePath)
} catch {
/* malform uri */
}
}
return normalizePath(filePath)
}
// Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...`
return function viteServePublicMiddleware(req, res, next) {
// To avoid the performance impact of `existsSync` on every request, we check against an
// in-memory set of known public files. This set is updated on restarts.
// also skip import request and internal requests `/@fs/ /@vite-client` etc...
if (
(publicFiles && !publicFiles.has(toFilePath(req.url!))) ||
isImportRequest(req.url!) ||
isInternalRequest(req.url!) ||
// for `/public-file.js?url` to be transformed
urlRE.test(req.url!)
) {
return next()
}
serve(req, res, next)
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does servePublicMiddleware() do?
servePublicMiddleware() is a function in the vite codebase, defined in packages/vite/src/node/server/middlewares/static.ts.
Where is servePublicMiddleware() defined?
servePublicMiddleware() is defined in packages/vite/src/node/server/middlewares/static.ts at line 80.
What does servePublicMiddleware() call?
servePublicMiddleware() calls 5 function(s): cleanUrl, isImportRequest, isInternalRequest, normalizePath, sirvOptions.
What calls servePublicMiddleware()?
servePublicMiddleware() is called by 1 function(s): _createServer.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free