Chrome有时会奇怪地缓存webpack://scripts。

14

我使用webpack作为模块打包工具

我启用了map文件

在Chrome中,我的原始脚本文件来自特殊的webpack资源 进入图像描述

我不确定是什么原因,但有时旧版本的脚本会被缓存。实际的新代码仍然正确更新,但地图引用的版本已经过时。这意味着行号不再匹配,我无法看到任何代码更改(例如非常烦人)。

似乎最终会自行修复,但在此期间让我感到难过。

其他人是否遇到类似问题/有任何想法可以解决它?

这似乎只局限于Chrome(如果我转到另一个浏览器,则加载正确的版本)

我已尝试:

  • 删除映射文件并重新生成它
  • 清空缓存并强制重新加载
  • 手动在Chrome中导航到文件(返回正确的版本,但在地图文件中仍然过时)

是的,我也遇到了这个问题。清除标准缓存并不能解决它。我找到的唯一解决方法是使用以下方式清除缓存:进入开发工具的网络选项卡,在鼠标右键上点击并选择“清除浏览器缓存”。 - Kreozot
1个回答

4
我发现这是由于实际地图文件被缓存所致。
如果在新标签页中打开地图文件并进行强制刷新,则源代码将正确地全部更新。
这可能是chrome的一个错误,即使用dev工具禁用缓存设置或页面进行硬刷新后没有重新加载。

除了手动刷新页面以查看更新的源映射外,您找到了解决方案吗?您是否使用热重新加载(热模块替换)?我遇到了您描述的热重新加载问题(代码本身被注入到页面中,但源映射已过时)。这发生在“source-map”(生成单独的源映射文件)和“eval-source-map”(将源映射嵌入到源文件中)两种情况下。 - Jason Frank
@JasonFrank 很遗憾,我解决这个问题的唯一方法是手动刷新地图文件。当时我没有使用热加载,但问题是相同的。我不确定它是否仅限于Chrome或WebKit。如果这真的很麻烦,在另一个浏览器中可能不会那么糟糕。 - undefined
这在Chrome中仍然是一个噩梦。 - SuperUberDuper
解决这个问题的另一种方法是重新安装Chrome。 - ferroariel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接