vitepress 项目没有修改的情况, 打包出的 html 文件仍然有变化
问题
vitepress 项目没有修改的情况, 打包出的 html 文件仍然有变化
原因
打包时, vitepress 会根据文件后缀生产一个 map 映射, 这个映射每次打包都是乱序的, 导致文件名变化
解决
修改
node_modules\vitepress\dist\node\
目录下的serve-xxx.js
文件jsconst _hashmap = {}; for (const name in bundle) { const chunk = bundle[name]; if (isPageChunk(chunk)) { const hash = chunk.fileName.match(hashRE)[1]; pageToHashMap[chunk.name.toLowerCase()] = hash; _hashmap[chunk.name.toLowerCase()] = hash; bundle[name + "-lean"] = { ...chunk, fileName: chunk.fileName.replace(/\.js$/, ".lean.js"), preliminaryFileName: chunk.preliminaryFileName.replace( /\.js$/, ".lean.js" ), code: chunk.code.replace(staticStripRE, `""`), }; chunk.code = chunk.code.replace(staticRestoreRE, ""); } } const entries = Object.entries(_hashmap); entries.sort((a, b) => a[0].localeCompare(b[0])); Object.assign(pageToHashMap, Object.fromEntries(entries));
保存后重新运行
npm run docs:build