为什么在调试器中两次包含React源?

时间:2019-06-20 22:54:08

标签: javascript firefox webpack google-chrome-devtools create-react-app

我“继承”了一个create-react-app,我将在此上更新一些功能。我熟悉JS并且可以在React中进行编码,但是我对webpack,npm,热重载或简化开发人员生命的其余过程了解不多。

不幸的是,当尝试调试该应用程序时,无论是在Chrome中还是在Firefox中,调试器都不会在断点处停止。 This answer建议在脚本出现两次时出现问题。实际上,在我的Firefox中,其中一个页面被加载了两次:

Screenshot of the first copy

Screenshot of the second copy

显然,它们不能同时存在于同一目录中。但是由于某种原因,浏览器会显示并且可能同时运行。

我如何识别它们的来源并禁用它,以便重新获得对调试器的控制权?我相信这与Webpack,热重装和源地图有关。


编辑::如果我重新启动firefox,那么一切都很好,只有源的一个副本。但是,在修改文件并且页面自动刷新之后,我又得到了2个副本。因此,对于这种热重装显然很可疑...

1 个答案:

答案 0 :(得分:1)

这似乎与浏览器缓存旧版本有关。

我还注意到只有一个版本会在断点处停止,而另一个版本只会忽略它们。

这篇文章向您显示哪个文件被缓存,哪个是真正的文件:https://stackoverflow.com/a/53877858/373207

在提供js文件的服务器中应该可以禁用缓存。 对于create-react-app,可以通过将start命令更改为:

react-scripts start --no-cache

来源:https://github.com/facebook/create-react-app/issues/6074#issuecomment-494720199