javascript - 为什么调试器中包含两次 React 源代码?
问题描述
我“继承”了create-react-app
我正在更新一些功能的 a 。我熟悉 JS 并且可以在 React 中编码,但我对 webpack、npm、热重载或其他简化开发人员生活的过程知之甚少。
不幸的是,在尝试调试此应用程序时,调试器不会在断点处停止,无论是在 Chrome 还是在 Firefox 中。这个答案表明当脚本出现两次时会出现问题。事实上,在我的 Firefox 中,其中一个页面被加载了两次:
显然,它们不能同时存在于同一目录中。但由于某种原因,浏览器会显示并可能同时运行两者。
我如何识别它们的来源并禁用它,以便重新控制我的调试器?我相信它与 webpack、热重载和源映射有关。
编辑:如果我重新启动 Firefox,那么一切都很好,只有一份源代码。但是,在我修改文件并且页面自动刷新后,我又得到了 2 个副本。因此,对于这种热重载显然有些可疑...
解决方案
这似乎是浏览器缓存旧版本的问题。
我还注意到只有一个版本会在断点处停止,而另一个版本会忽略它们。
这篇文章向您展示了哪个文件被缓存,哪个是真实的:https ://stackoverflow.com/a/53877858/373207
在提供 js 文件的服务器中应该可以禁用缓存。对于 create-react-app 这可以通过将启动命令更改为:
react-scripts start --no-cache
来源:https ://github.com/facebook/create-react-app/issues/6074#issuecomment-494720199
推荐阅读
- python - 行为类似于 reduce 但产生所有中间结果的单行生成器
- javascript - 无法以预期的对象格式设置值
- php - 如何修复wordpresss中的php致命错误和http错误500
- python - 通过线程打印奇偶数之间的同步
- c# - 我可以从现有 PDF 中删除文本对象并使用 iTextSharp 输出到新 PDF 吗?
- css - 添加border-right: 1px会导致整个结构分崩离析
- javascript - Form Preventdefault 不起作用,重定向到发布网址
- awk - 打印具有唯一值的列
- html - 如何更改使用 CSS 突出显示的文本的形状
- spring-boot - 如何使用服务帐户在 Spring Boot 2.x 中调用 gmail api?