Vite 项目最简单方法解决部署后 Failed to fetch dynamically imported Error问题

问题描述

老板访问前端项目时,如果电脑长时间没刷新,可能会遇到一个常见问题:研发刚部署了新版本,但老板电脑浏览器里的 index.html 还是旧的。于是 index.html 引用的 JS 文件也是旧的 hash 文件,已经不存在了。这时候,如果点击按需加载的模块或路由页面,就会报错:

[TypeError: Failed to fetch dynamically imported module]

相信很多前端都见过。

解决方案

可以用这个 Vite 插件: plugin-web-update-notification

插件功能:部署新版本后,会在页面弹出一个小提示,通知用户点击刷新即可更新页面。

不过,如果用户没注意通知就去点侧边栏其他模块,仍然可能触发 dynamically imported 的报错。以前我都是监听报错再强制刷新页面,现在有更简单的方法,只需要几行代码:

js 复制代码
window.addEventListener('vite:preloadError', (event) => {
  window.location.reload() // 例如,刷新页面
})

官方文档: 构建生产版本 | Vite 官方中文文档

相关推荐
Championship.23.2413 小时前
Open Source Pipeline Skill深度解析:自动化开源贡献全流程
前端·javascript·html
Bigger13 小时前
🧠 前端岗位的"结构性调整":现象背后的冷思考
前端·程序员·ai编程
薯老板13 小时前
vue组件之间的通信
前端·vue.js
迪菲赫尔曼13 小时前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
万邦科技Lafite13 小时前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台
梦想CAD控件13 小时前
网页CAD协同设计平台-生产级在线实时协同CAD引擎
前端·javascript·架构
Highcharts.js13 小时前
React 开发实战:如何使用 useEffect 为 Highcharts 注入实时数据
前端·javascript·react.js·开发实战·实时数据·highcharts·轮询数据
陆枫Larry13 小时前
Vue Slot 到底在解决什么问题?
前端
梦想很大很大13 小时前
让 AI 成为“报表配置员”:BI 低代码平台的 Schema 实践路径
前端·人工智能·低代码
用户0595401744614 小时前
asyncio 踩坑实录:这个问题坑了我3小时,差点让线上服务崩掉
前端·css