我几天前将Sentry与我的网站集成,发现有时用户会在控制台中收到此错误:
ChunkLoadError: Loading chunk <CHUNK_NAME> failed.
(error: <WEBSITE_PATH>/<CHUNK_NAME>-<CHUNK_HASH>.js)
因此,我在网上调查了这个问题,并发现了一些类似的情况,但这些情况都是由于会话期间的发布更新或缓存问题导致的丢失块。
这些情况与我的主要区别在于,从浏览器中实际可达到失败的块,因此加载错误不取决于块哈希后发布后的刷新,但是(我猜),因为某些网络相关的问题。
这一假设得到了支持:约90%的设备都是移动设备。
最后,我想问一个问题:我应该用某种方式来处理这个问题,例如重试失败的块加载,还是最好让用户手动刷新?
2021.09.28编辑:
一个月后,这个问题仍然存在,但我没有收到任何用户报告,同时我也在不断地记录Hotjar用户会话,但目前没有发现有意义的信息。
我最近与Sentry支持人员进行了交谈,他们帮助我排除了与网络有关的假设:
我们的React SDK默认没有离线缓存,当捕获到错误时,它将在那一点发送。如果应用程序无法连接到Sentry发送事件,它将被丢弃,SDK不会再尝试发送它。
来自Sentry的Rodolfo
我可以确认这个问题非常不寻常,我与您分享另一个有趣的统计数据:从第一次发生以来,受影响的用户是332,227个独立访客中的882人(约占0.26%),但我注意到90%的出现情况是来自iOS(而不是像一个月前我注意到的通用移动设备),因此如果我按照iOS用户计算相同的比例(128,444人中的794人(882的90%)),我们接近0.62%。仍然很小,但在iOS上明显更重要。
webpack:///webpack/bootstrap
,然后是[native code]
,接着是我们应用程序定义的lazyImport
函数,该函数定义为:return import( /* webpackChunkName: "[request]" */ "../" + moduleName )
。 - you786