SvelteKit/Vite HMR 和 import.meta.glob 明显不同步

SvelteKit/Vite HMR and import.meta.glob apparent desync

提问人:Vitroid 提问时间:11/14/2023 最后编辑:Vitroid 更新时间:11/18/2023 访问量:60

问:

这个赏金已经结束了。这个问题的答案有资格获得 +50 声望赏金。赏金宽限期在 20 小时后结束。Vitroid希望引起人们对这个问题的更多关注

我注意到一些奇怪的行为,我已将范围缩小到以下内容:

  • 我有一个设置,我通过导入多个 .md 文件,以解析为我的网站的单个内容位import.meta.glob

  • 当我更改 frontmatter 元数据中的值时,它应该触发重新加载,并显示新值。这似乎只工作一次。我在文件中进行更改,保存它,然后它就会显示出来。如果我第二次更改并保存,它似乎会触发 HMR,但旧内容仍然显示,直到我手动刷新页面,然后它再次正确显示。

我使用的测试过程基本上只是导入文件夹内容并打印值。每次我更改标题中的数字并保存文件时,它都会运行该函数并记录我更改的 md 文件的假定新标题:

modules = import.meta.glob("/modules/**/*.md", {eager: true});
console.log(modules["/modules/builds/5inch-beginner/1-16-5-2022-motors-emax-eco-2.md"].metadata.title)

console output of title logs

对文件的任何后续更改仅显示首次保存的标题。刷新页面后,它会加载实际的当前标题

我有点不明白是什么原因导致了这种情况,甚至不知道从哪里开始试图弄清楚。任何想法将不胜感激 ❤️

编辑:我这里有一个最小的复制存储库,似乎也与导入的函数有关。如果我在一个文件中定义并运行它,它就可以正常工作

Vite Sveltekit HMR

评论


答: 暂无答案