前言与痛点

在单页应用(SPA)的日常开发与运维中,我们经常会遇到因旧版本文件失效导致的用户访问异常。一个典型的场景如下:

  1. 10:00 —— 部署了版本 V1,用户正常访问并停留在页面 A。
  2. 11:00 —— 部署了版本 V2。此时,服务器上的 JS 文件带有全新的 Hash 后缀,V1 版本的旧 JS 文件已被新版本覆盖或被清理。
  3. 11:05 —— 停留在页面 A 的用户尝试点击路由跳转到页面 B。此时浏览器尝试通过 import() 动态加载页面 B 对应的 chunk 文件,但服务器上该文件已不存在,导致请求返回 404。

此时,基于 ESM 构建的工具(如 Vite)在控制台通常会抛出以下错误,导致前端路由完全卡死,页面毫无反应:

TypeError: Failed to fetch dynamically imported module: https://.../assets/xxxx.abc123.js

在频繁迭代、敏捷部署的业务环境中,如果不妥善处理此类问题,将会导致用户访问失败,严重影响用户体验。

此处内容已隐藏回复后方可阅读。

分类: vue 项目实战 标签: 路由importchunk重载

评论

暂无评论数据

暂无评论数据

目录