processNodeUrl() — vite Function Reference
Architecture documentation for the processNodeUrl() function in indexHtml.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3["processNodeUrl()"] 3f56d5b2_9fca_532f_3bfc_6bfb2be77015["indexHtml.ts"] 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 -->|defined in| 3f56d5b2_9fca_532f_3bfc_6bfb2be77015 c7929a5b_9791_180a_9c0b_4f479fb4cf3f["devHtmlHook()"] c7929a5b_9791_180a_9c0b_4f479fb4cf3f -->|calls| 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 c954a0df_af6a_f765_b870_4cba4bf042b4["isBareRelative()"] 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 -->|calls| c954a0df_af6a_f765_b870_4cba4bf042b4 bdd49406_d977_da9f_c847_bc5405877a0d["shouldPreTransform()"] 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 -->|calls| bdd49406_d977_da9f_c847_bc5405877a0d 1948f092_e5a5_076b_2f59_79ef22dec191["injectQuery()"] 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 -->|calls| 1948f092_e5a5_076b_2f59_79ef22dec191 29f999b6_18cf_5f75_7b27_cf12b0774ee0["preTransformRequest()"] 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 -->|calls| 29f999b6_18cf_5f75_7b27_cf12b0774ee0 d7438db6_1b57_5dc6_c809_315c4ef7b3d6["processSrcSetSync()"] 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 -->|calls| d7438db6_1b57_5dc6_c809_315c4ef7b3d6 983c34fc_39a0_52cc_1c78_f5c74a361a26["get()"] 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 -->|calls| 983c34fc_39a0_52cc_1c78_f5c74a361a26 style 98ce5fcf_1d4d_c6f5_6eed_3bde652f7be3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/server/middlewares/indexHtml.ts lines 131–200
const processNodeUrl = (
url: string,
useSrcSetReplacer: boolean,
config: ResolvedConfig,
htmlPath: string,
originalUrl?: string,
server?: ViteDevServer,
isClassicScriptLink?: boolean,
): string => {
// prefix with base (dev only, base is never relative)
const replacer = (url: string) => {
if (
(url[0] === '/' && url[1] !== '/') ||
// #3230 if some request url (localhost:3000/a/b) return to fallback html, the relative assets
// path will add `/a/` prefix, it will caused 404.
//
// skip if url contains `:` as it implies a url protocol or Windows path that we don't want to replace.
//
// rewrite `./index.js` -> `localhost:5173/a/index.js`.
// rewrite `../index.js` -> `localhost:5173/index.js`.
// rewrite `relative/index.js` -> `localhost:5173/a/relative/index.js`.
((url[0] === '.' || isBareRelative(url)) &&
originalUrl &&
originalUrl !== '/' &&
htmlPath === '/index.html')
) {
url = path.posix.join(config.base, url)
}
let preTransformUrl: string | undefined
if (!isClassicScriptLink && shouldPreTransform(url, config)) {
if (url[0] === '/' && url[1] !== '/') {
preTransformUrl = url
} else if (url[0] === '.' || isBareRelative(url)) {
preTransformUrl = path.posix.join(
config.base,
path.posix.dirname(htmlPath),
url,
)
}
}
if (server) {
const mod = server.environments.client.moduleGraph.urlToModuleMap.get(
preTransformUrl || url,
)
if (mod && mod.lastHMRTimestamp > 0) {
url = injectQuery(url, `t=${mod.lastHMRTimestamp}`)
}
}
if (server && preTransformUrl) {
try {
preTransformUrl = decodeURI(preTransformUrl)
} catch {
// Malformed uri. Skip pre-transform.
return url
}
preTransformRequest(server, preTransformUrl, config.decodedBase)
}
return url
}
const processedUrl = useSrcSetReplacer
? processSrcSetSync(url, ({ url }) => replacer(url))
: replacer(url)
return processedUrl
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does processNodeUrl() do?
processNodeUrl() is a function in the vite codebase, defined in packages/vite/src/node/server/middlewares/indexHtml.ts.
Where is processNodeUrl() defined?
processNodeUrl() is defined in packages/vite/src/node/server/middlewares/indexHtml.ts at line 131.
What does processNodeUrl() call?
processNodeUrl() calls 6 function(s): get, injectQuery, isBareRelative, preTransformRequest, processSrcSetSync, shouldPreTransform.
What calls processNodeUrl()?
processNodeUrl() is called by 1 function(s): devHtmlHook.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free