workbox v5 - 如何对 Service Worker 进行版本控制?

Jam*_*uth 2 service-worker progressive-web-apps workbox workbox-webpack-plugin

在 v4 中,我们可以precacheManifestFilename与 workbox webpack 插件一起使用,在清单名称中放置一个版本,该版本被导入到 SW 中,从而对其进行版本控制。既然清单已内联并且选项已删除,那么对软件进行版本控制的新方法是什么?我可以想到一些可以在缩小后幸存下来的方法,但它们看起来很老套。我们应该对缓存名称进行版本控制吗?

Jef*_*ick 5

不应该对Service Worker 的文件名/U​​RL 进行版本控制。

如果您的任何webpack资产在 Service Worker 部署之间发生更改,则存储在主 Service Worker 文件中的预缓存清单中的内联信息将会更新。当浏览器对 Service Worker 文件中的新内容进行逐字节检查时,更新的内联清单将触发更新流程

这将为您提供您期望的行为。

(这也是预缓存清单历来与非webpackWorkbox 构建工具一起使用的方式,这些工具始终将清单内联到顶级服务工作线程文件中。)