Unexpected token < [duplicate] webpack打包发布新版本加载新js抛错

当使用webpack打包并发布新版本时,由于hash值改变导致用户使用旧的资源请求,从而出现ChunkLoadError。这会使js文件无法执行,引发SyntaxError。为解决此问题,可以考虑减少发版次数、调整缓存策略或修改webpack配置为js?id=[hash]。终极解决方案是捕获错误并自动刷新页面,确保用户能获取最新代码。
摘要由CSDN通过智能技术生成
  1. 问题描述,报错 app.6fbc22d5.js:1 Uncaught (in promise) ChunkLoadError: Loading chunk 14 failed

  2. 是由于webpack拆分包,打包出来js是带有hash值得。如果用户已经登录,本地已经知道,需要按需加载的js路径地址。但此时服务重新发版,会导致打包出来的hash值会有变化。用户使用旧的资源去请求。导致加载不到资源,服务器会返回登陆的html。

  3. 导致页面点击没反应抛错。

    1. SyntaxError, 此类异常一旦发生,导致整个js文件都无法执行,所以点击页面没反应

  4. 解决方案

    1. 减少发版次数

    2. 减少缓存,或者token失效时间。

    3. webpack 打包的时候,增加js?id=[hash]

      1. 解决加载不到,抛错。

      2. 但是不会加载最新资源,需要用户手动刷新,就好了

    4. 捕获异常,重新加载页面(终极解决方案)

      1. 直接上代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值