-
问题描述,报错 app.6fbc22d5.js:1 Uncaught (in promise) ChunkLoadError: Loading chunk 14 failed
-
是由于webpack拆分包,打包出来js是带有hash值得。如果用户已经登录,本地已经知道,需要按需加载的js路径地址。但此时服务重新发版,会导致打包出来的hash值会有变化。用户使用旧的资源去请求。导致加载不到资源,服务器会返回登陆的html。
-
导致页面点击没反应抛错。
-
-
SyntaxError, 此类异常一旦发生,导致整个js文件都无法执行,所以点击页面没反应
-
-
解决方案
-
-
减少发版次数
-
减少缓存,或者token失效时间。
-
webpack 打包的时候,增加js?id=[hash]
-
-
解决加载不到,抛错。
-
但是不会加载最新资源,需要用户手动刷新,就好了
-
-
捕获异常,重新加载页面(终极解决方案)
-
-
直接上代码
-
-
Unexpected token < [duplicate] webpack打包发布新版本加载新js抛错
最新推荐文章于 2023-08-24 17:16:59 发布
当使用webpack打包并发布新版本时,由于hash值改变导致用户使用旧的资源请求,从而出现ChunkLoadError。这会使js文件无法执行,引发SyntaxError。为解决此问题,可以考虑减少发版次数、调整缓存策略或修改webpack配置为js?id=[hash]。终极解决方案是捕获错误并自动刷新页面,确保用户能获取最新代码。
摘要由CSDN通过智能技术生成