Vite 打包的 SPA 部署新版之後,常會收到這種回報:「選單點了沒反應,重新整理就好了。」原因是使用者的分頁還停在舊版,舊版要載入的 chunk 在伺服器上已經不存在了。 Vite 官方文件提供了 vite:preloadError 事件,範例只有一行 window.location.reload()。這一行能解決大部分情況,但它沒處理無限重整、同一次失敗觸發好幾次,也沒顧慮使用者手上正在進行的工作。這篇從官方範例出發,逐一補上這些狀況。