使用 lein figwheel 使所有缓存无效

Invalidate all cache with lein figwheel

我 运行 遇到了 Fighweel 的热代码重新加载的几个问题,当它不重新加载它必须重新加载的所有内容时,旧的 state/code 即使它不再在源代码中,仍然存在并且即使我重新运行lein figwheel.

清除所有浏览器缓存、所有图形轮缓存和所有我可能甚至不知道的缓存以确保没有剩余的最简单方法是什么来自旧版本的代码?

在 Chrome 中,按 Cntl-F5 应该会重新加载页面,这通常需要进行。最好将浏览器设置为在控制台打开时不使用缓存,并且始终在控制台打开的情况下进行开发。看到这个答案:Disabling Chrome cache for website development.

当命令行中的事情真的很混乱时,请转到 lein clean。您不需要经常这样做。确切清除(从磁盘中删除)的内容取决于密钥 :clean-targets.

project.clj 中的内容

更新 2: 我注意到一些缓存问题,所以我创建了 bhauman/lein-figwheel#667 to hopefully squash them once and for all. These changes should be released in Figwheel 0.5.16. I also wrote more about how to serve ClojureScript files in development

更新: bhauman/lein-figwheel#586 已合并,设置正确的缓存 headers 以避免使用陈旧文件。使用 lein-figwheel 版本 0.5.12 或更高版本时,您应该不会再看到陈旧文件的任何问题。


在 macOS 上的 Chrome 中,Command+Shift+R 会执行硬重新加载,或者您可以长按重新加载按钮以获取清除缓存的选项。确保您已打开 Chrome devtools,否则您将看不到这些选项。

附带说明一下,我认为您看到的缓存行为可能已被 bhauman/lein-figwheel#464 修复。