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 官方中文文档

相关推荐
汉得数字平台19 小时前
汉得H-AI飞码——前端编码助手V1.1.2正式发布:融业务知识,提开发效能
前端·人工智能·智能编码
前端小万19 小时前
Jenkins 打包崩了?罪魁是 package.json 里的 ^
前端·jenkins
编程小白gogogo19 小时前
苍穹外卖前端环境搭建
前端
shuaijie051819 小时前
当表格数据量过大的时候,如何使用不分页进行展示
javascript·vue.js·ecmascript
光影少年19 小时前
web端安全问题有哪些?
前端·安全
行走的陀螺仪19 小时前
Vite & Webpack 插件/Loader 封装完全指南
前端·webpack·node.js·vite·前端工程化·打包构建
1024肥宅19 小时前
浏览器网络请求 API:全面解析与高级封装(1)
前端·websocket·axios
小费的部落19 小时前
Excel 在Sheet3中 匹配Sheet1的A列和Sheet2的A列并处理空内容
java·前端·excel
霍格沃兹测试学院-小舟畅学19 小时前
Cypress 入门与优势分析:前端自动化测试的新利器
前端
1024肥宅19 小时前
浏览器网络请求 API:全面解析与高级封装(2)
前端·websocket·axios