You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迭代开发阶段如何实时查看Service Worker的更新变化

Service Worker/Workbox 开发阶段热更优化方案
  • 优先开启Workbox相关集成工具的开发模式:如果使用Workbox CLI、webpack/vite的Workbox插件,将mode参数设置为development,同时选择injectManifest模式而非全量生成的generateSW模式。该模式会自动关闭生产环境才需要的预缓存哈希校验、SW压缩等耗时流程,不需要每次全量执行npm run build生成预缓存清单。
  • 拆分SW的编译逻辑:不要把Service Worker的构建流程和全量生产构建绑定,单独给SW配置esbuild/swc的快速编译规则,单次增量编译耗时基本在100ms以内。如果使用vite-plugin-pwa,直接开启devOptions.enabled = true,开发阶段会自动托管SW文件,原生支持热更新,完全不需要跑构建命令。
  • 配置浏览器自动更新SW:打开Chrome DevTools > Application > Service Workers面板,勾选Update on reload选项,每次页面刷新时浏览器会自动拉取最新的SW文件,检测到变更后直接触发更新流程,不需要手动卸载旧SW。
  • 开发环境新增自动激活逻辑:在SW源码中加入以下代码,新SW安装完成后直接跳过等待、接管所有打开的页面,不需要等待旧SW控制的标签页全部关闭:
if (process.env.NODE_ENV === 'development') {
  self.addEventListener('install', () => self.skipWaiting())
  self.addEventListener('activate', () => self.clients.claim())
}

按照以上配置调整后,修改SW文件后只需要刷新页面即可看到变更,不需要执行全量构建流程。

内容的提问来源于stack exchange,提问作者Denqi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:24:02