工作箱不覆盖默认策略

时间:2019-03-21 12:37:37

标签: nuxt.js workbox

在Nuxt Workbox中存在一些覆盖默认cacheFirst策略的问题。

预期的行为:将CacheFirst替换为staleWhileRevalidate

nuxt.config.js:

StringProvider

当前行为:创建一个新条目而不是覆盖。

sw.js:

workbox: {
  runtimeCaching: [
    {
      urlPattern: '/_nuxt/.*',
      handler: 'staleWhileRevalidate',
      method: 'GET'
    }
  ]
}

不确定我缺少什么。感谢您的帮助。干杯!

1 个答案:

答案 0 :(得分:0)

我似乎通过添加到nuxt.config.js来解决了这个问题:

workbox: {
  cachingExtensions: '@/plugins/wb-ext.js'
}

然后我的wb-ext.js包含:

workbox.routing.registerRoute(new RegExp('/_nuxt/.*'), 
workbox.strategies.staleWhileRevalidate({
  plugins: [
    new workbox.broadcastUpdate.Plugin('new-update-channel')
  ]
}), 'GET')

这会将wb-ext代码添加到sw.js文件中由Nuxt Workbox创建的自动生成的cacheFirst策略之上。

现在在开发期间,我收到一条消息,指出Workbox正在开发控制台中使用StaleWhileRevalidate,并且广播更新插件按预期工作。

如果您有一种更干净的方法来实现此目标,而sw.js文件中没有冲突的策略,请随时发表评论。

谢谢!