service-worker.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /* eslint-disable no-restricted-globals */
  2. /* eslint-disable no-underscore-dangle */
  3. /* globals workbox */
  4. workbox.core.setCacheNameDetails({
  5. prefix: 'antd-pro',
  6. suffix: 'v1'
  7. })
  8. // Control all opened tabs ASAP
  9. workbox.clientsClaim()
  10. /**
  11. * Use precaching list generated by workbox in build process.
  12. * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.precaching
  13. */
  14. workbox.precaching.precacheAndRoute(self.__precacheManifest || [])
  15. /**
  16. * Register a navigation route.
  17. * https://developers.google.com/web/tools/workbox/modules/workbox-routing#how_to_register_a_navigation_route
  18. */
  19. workbox.routing.registerNavigationRoute('/index.html')
  20. /**
  21. * Use runtime cache:
  22. * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.routing#.registerRoute
  23. *
  24. * Workbox provides all common caching strategies including CacheFirst, NetworkFirst etc.
  25. * https://developers.google.com/web/tools/workbox/reference-docs/latest/workbox.strategies
  26. */
  27. /**
  28. * Handle API requests
  29. */
  30. workbox.routing.registerRoute(/\/api\//, workbox.strategies.networkFirst())
  31. /**
  32. * Handle third party requests
  33. */
  34. workbox.routing.registerRoute(
  35. /^https:\/\/gw\.alipayobjects\.com\//,
  36. workbox.strategies.networkFirst()
  37. )
  38. workbox.routing.registerRoute(
  39. /^https:\/\/cdnjs\.cloudflare\.com\//,
  40. workbox.strategies.networkFirst()
  41. )
  42. workbox.routing.registerRoute(/\/color.less/, workbox.strategies.networkFirst())
  43. /**
  44. * Response to client after skipping waiting with MessageChannel
  45. */
  46. addEventListener('message', event => {
  47. const replyPort = event.ports[0]
  48. const message = event.data
  49. if (replyPort && message && message.type === 'skip-waiting') {
  50. event.waitUntil(
  51. self.skipWaiting().then(
  52. () =>
  53. replyPort.postMessage({
  54. error: null
  55. }),
  56. error =>
  57. replyPort.postMessage({
  58. error
  59. })
  60. )
  61. )
  62. }
  63. })