как импортировать рабочий ящик defaultRouter

есть пример маршрутизация Workbox/расширенное использование

Но когда я попробовал это, я получаю:

Uncaught ReferenceError: DefaultRouter не определен

там мой сервис-воркер:

<!-- language: lang-js -->
importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.2.0/workbox-sw.js");

workbox.skipWaiting();
workbox.clientsClaim();
workbox.setConfig({
  debug: true
});

const router = new DefaultRouter();
router.registerRoute(new RegExpRoute( /\/index\.html/, workbox.strategies.networkFirst()));
router.registerRoute(new RegExpRoute( /main\.min\.js/, workbox.strategies.staleWhileRevalidate()));
self.addEventListener('fetch', (event) => {
  const responsePromise = router.handleRequest(event);
  if (responsePromise) {
    // Router found a route to handle the request
    event.respondWith(responsePromise);
  } else {
    // No route found to handle the request
    console.debug('workbox has no route to handle request ', event.request);
  }
});

person Andy M    schedule 11.05.2018    source источник


Ответы (2)


Я также наткнулся на ту же проблему.

Похоже, что DefaultRouter был заменен на Router https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.routing.Router и для инициализации необходимо выполнить new workbox.routing.Router().

person Swar Shah    schedule 31.10.2019

теперь я нахожу просто забавно выглядящий bypass: вместо этого:

const router = new DefaultRouter();

Я использую:

router = new workbox.routing.constructor();
person Andy M    schedule 11.05.2018