我有一个使用 Webpack 构建的 react 项目。有一个错误(很可能是缺少 JS 功能,但这只是一个猜测),它只会在“fetch as Google”中显示出来,无论他们在这个工具中使用什么浏览器/JS 引擎。
显然,除了 window.onerror
之外,我没有控制台或其他方法来获取错误。或 window.addEventListener('error')
.我尝试将这些处理程序(我假设它们是可互换的)都添加为外部 <script>
在主捆绑包上方或直接在 index.js
内部作为第一次导入。
这些处理程序捕获一个错误,但错误消息是非常通用的“脚本错误”,其他参数(例如行号)为 0。我用谷歌搜索了这个,每个解决方案都表明当第 3 方脚本加载时会发生这样的错误/o CORS,但问题是我的页面上没有 3rd 方脚本,只有 webpack 包。我想这与 webpack 分离模块的方式有某种关系......当我在导入处理程序的主组件内触发错误时,错误消息会正确显示。
我不知道是哪个模块导致了这个错误,所以我无法正确附加处理程序(我读到这很可能是由新的 ESnext 功能引起的,所以我尝试添加一些垫片,再次在包内或作为上面的外部脚本主捆绑包,但这没有帮助)。
有没有办法绕过“脚本错误”并获得实际的错误消息?也许还有另一种全局 JS 错误处理的方法,或者一些特定于 webpack 的 hack?
最佳答案
好的,所以不是调试问题的真正答案,但如果有人在“Fetch as Google”/“Page speedInsights”JS 渲染引擎中遇到未知 JS 错误的问题 - 请尝试使用用户代理建议的 Chrome 版本(在我的情况是Chrome/41.0.2272.118
)。
当我下载适当版本的 Chromium 并打开我的网站时,我收到了一个 JS 错误,这是一个 webpack/jQuery 加载程序冲突。删除 jQuery 依赖项为 Google 修复了该站点。
关于javascript - Webpack 全局 JS 错误处理程序和 "Script error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233968/