fix: hmr working only once for markdown files

closes #4909
pull/4910/head
Divyansh Singh 1 month ago
parent 8abbe298d5
commit 8d8a5ac281

@ -4,6 +4,7 @@ import {
mergeConfig,
normalizePath,
searchForWorkspaceRoot,
type EnvironmentModuleNode,
type Plugin,
type ResolvedConfig,
type Rollup,
@ -400,19 +401,22 @@ export async function createVitePressPlugin(
const hmrFix: Plugin = {
name: 'vitepress:hmr-fix',
async hotUpdate({ file, modules }) {
async hotUpdate({ file, modules: existingMods }) {
if (this.environment.name !== 'client') return
const modules: EnvironmentModuleNode[] = []
const importers = [...(importerMap[slash(file)] || [])]
if (importers.length > 0) {
return [
...modules,
...importers.map((id) => {
clearCache(id)
return this.environment.moduleGraph.getModuleById(id)
})
].filter((mod) => mod !== undefined)
if (file.endsWith('.md')) {
const mod = this.environment.moduleGraph.getModuleById(file)
mod && modules.push(mod)
}
importerMap[slash(file)]?.forEach((importer) => {
clearCache(importer)
const mod = this.environment.moduleGraph.getModuleById(importer)
mod && modules.push(mod)
})
return modules.length ? [...existingMods, ...modules] : undefined
}
}

Loading…
Cancel
Save