在更新各种路由的缓存时,Workbox v5无法确保服务工作者保持活动状态

问题描述

我们当前正在将WorkBox(v5)用于相当大的SaaS平台。大多数路由都设置为使用NetworkFirst

我无法解决的原因是,对于某些路线,当以非生产模式运行平台时,有一些WorkBox警告说在为以下情况更新缓存时无法确保Service Worker保持活动状态[路线]

有人知道该消息的实际含义,即为什么触发该消息吗?我看到它来自 ExpirationPlugin

该平台的前端是带有 Webpack Vue.js ,我们正在将WorkBoxWebpackPluginInjectManifest一起使用。

它的配置如下:

config.plugin('workBox')
  .use(WorkBoxWebpackPlugin.InjectManifest,[{
    swSrc: './src/sw.js',swDest: 'sw.js',maximumFileSizetoCacheInBytes: 5242880,// 5MB
    exclude: [
      /\web.config$/,/refresh.html$/,/sw.js$/
    ]
  }])

手指交叉,我将可以了解更多有关此警告消息的信息。预先感谢。

解决方法

经过进一步测试,当路由使用 NetworkFirstnetworkTimeoutSeconds 并且来自路由的响应超过 networkTimeoutSeconds 中设置的秒数时,似乎会显示此警告。