handleHMRUpdate() — vite Function Reference
Architecture documentation for the handleHMRUpdate() function in hmr.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD 8f73b680_d5b9_383c_f695_c906b80fb1e6["handleHMRUpdate()"] 18db4f26_79f1_5b7d_b291_4feeaf95538f["hmr.ts"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|defined in| 18db4f26_79f1_5b7d_b291_4feeaf95538f 24ecf2a1_3c09_d451_76f3_9485b4e993f8["_createServer()"] 24ecf2a1_3c09_d451_76f3_9485b4e993f8 -->|calls| 8f73b680_d5b9_383c_f695_c906b80fb1e6 bb180253_0ada_744c_66d8_79e5db023c5c["ignoreDeprecationWarnings()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| bb180253_0ada_744c_66d8_79e5db023c5c 2ff971ab_04c3_0402_34fc_dc2f5f3103ec["getShortName()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| 2ff971ab_04c3_0402_34fc_dc2f5f3103ec ff7562f3_f396_12b1_2d0c_c03c1ee28f2c["getEnvFilesForMode()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| ff7562f3_f396_12b1_2d0c_c03c1ee28f2c a4adb1a7_cf54_091f_eb63_8217e684a8e1["normalizePath()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| a4adb1a7_cf54_091f_eb63_8217e684a8e1 2e1469ca_9e59_dcc2_bdc7_05126c765fd0["error()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| 2e1469ca_9e59_dcc2_bdc7_05126c765fd0 1a3bec7b_1a11_316f_5831_a0535b829bbf["withTrailingSlash()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| 1a3bec7b_1a11_316f_5831_a0535b829bbf dfa2b928_25a4_a78f_1e11_1e7e643cae09["resolve()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| dfa2b928_25a4_a78f_1e11_1e7e643cae09 74ee9886_2456_3964_e90e_5fc67925229d["monotonicDateNow()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| 74ee9886_2456_3964_e90e_5fc67925229d 6740d01d_d16c_18d3_8598_2b7709d0ddb6["readModifiedFile()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| 6740d01d_d16c_18d3_8598_2b7709d0ddb6 57bd050c_f162_f6af_9491_3a9b3bcd5ca2["set()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| 57bd050c_f162_f6af_9491_3a9b3bcd5ca2 d1f8b612_857c_d18a_b763_92f90bf93d2b["get()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| d1f8b612_857c_d18a_b763_92f90bf93d2b 48bd1440_14d9_820b_54ca_14e94bd0e603["getSortedHotUpdatePlugins()"] 8f73b680_d5b9_383c_f695_c906b80fb1e6 -->|calls| 48bd1440_14d9_820b_54ca_14e94bd0e603 style 8f73b680_d5b9_383c_f695_c906b80fb1e6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/server/hmr.ts lines 370–628
export async function handleHMRUpdate(
type: 'create' | 'delete' | 'update',
file: string,
server: ViteDevServer,
): Promise<void> {
const { config } = server
const mixedModuleGraph = ignoreDeprecationWarnings(() => server.moduleGraph)
const environments = Object.values(server.environments)
const shortFile = getShortName(file, config.root)
const isConfig = file === config.configFile
const isConfigDependency = config.configFileDependencies.some(
(name) => file === name,
)
const isEnv =
config.envDir !== false &&
getEnvFilesForMode(config.mode, config.envDir).includes(file)
if (isConfig || isConfigDependency || isEnv) {
// auto restart server
debugHmr?.(`[config change] ${colors.dim(shortFile)}`)
config.logger.info(
colors.green(
`${normalizePath(
path.relative(process.cwd(), file),
)} changed, restarting server...`,
),
{ clear: true, timestamp: true },
)
try {
await restartServerWithUrls(server)
} catch (e) {
config.logger.error(colors.red(e))
}
return
}
debugHmr?.(`[file change] ${colors.dim(shortFile)}`)
// (dev only) the client itself cannot be hot updated.
if (file.startsWith(withTrailingSlash(normalizedClientDir))) {
environments.forEach(({ hot }) =>
hot.send({
type: 'full-reload',
path: '*',
triggeredBy: path.resolve(config.root, file),
}),
)
return
}
if (config.experimental.bundledDev) {
// TODO: support handleHotUpdate / hotUpdate
return
}
const timestamp = monotonicDateNow()
const contextMeta = {
type,
file,
timestamp,
read: () => readModifiedFile(file),
server,
}
const hotMap = new Map<
Environment,
{ options: HotUpdateOptions; error?: Error }
>()
for (const environment of Object.values(server.environments)) {
const mods = new Set(environment.moduleGraph.getModulesByFile(file))
if (type === 'create') {
for (const mod of environment.moduleGraph._hasResolveFailedErrorModules) {
mods.add(mod)
}
}
const options = {
...contextMeta,
modules: [...mods],
}
Domain
Subdomains
Defined In
Calls
- error()
- get()
- getBackwardCompatibleModuleNode()
- getEnvFilesForMode()
- getHookHandler()
- getModulesByFile()
- getShortName()
- getSortedHotUpdatePlugins()
- ignoreDeprecationWarnings()
- info()
- monotonicDateNow()
- normalizePath()
- prepareError()
- readModifiedFile()
- resolve()
- set()
- updateModules()
- warnFutureDeprecation()
- withTrailingSlash()
Called By
Source
Frequently Asked Questions
What does handleHMRUpdate() do?
handleHMRUpdate() is a function in the vite codebase, defined in packages/vite/src/node/server/hmr.ts.
Where is handleHMRUpdate() defined?
handleHMRUpdate() is defined in packages/vite/src/node/server/hmr.ts at line 370.
What does handleHMRUpdate() call?
handleHMRUpdate() calls 19 function(s): error, get, getBackwardCompatibleModuleNode, getEnvFilesForMode, getHookHandler, getModulesByFile, getShortName, getSortedHotUpdatePlugins, and 11 more.
What calls handleHMRUpdate()?
handleHMRUpdate() 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