我在 Sentry 中遇到很多错误,说“ReferenceError: jQuery is not defined”,但与页面加载总数相比,它仍然很少发生。
<script src="/js/compiled/jquery.min-2fe08f7.js" defer></script>
<script src="/js/my-script-e6f35a4.js" defer></script>
my-script.js 类似于:
(function($) {
$('h1').text('Hello world');
})(jQuery);
但我从哨兵报告中不知道为什么没有加载 jQuery。
Sentry 面包屑中提供的唯一线索非常无用:
12:15:25 sentry ReferenceError: jQuery is not defined
12:15:25 sentry ReferenceError: jQuery is not defined
12:15:26 exception ReferenceError: jQuery is not defined
延迟脚本应该按照它们在文档中出现的顺序加载,所以我认为问题不在于异步加载。
也许一些慢速设备上的 jQuery 文件加载超时?或者文件在某个时刻在服务器上不可用?
这发生在我的各种 JS 文件和各种依赖项中,不仅是 jQuery。谁能建议我如何正确解决此类问题,或者至少将完整的控制台输出提供给 Sentry,包括对 JS 文件等资源的 HTTP 子请求失败,以找出实际原因?
提前致谢。