Webpack 使用workbox启用service worker

Webpack 使用workbox启用service worker,webpack,progressive-web-apps,workbox,Webpack,Progressive Web Apps,Workbox,正在使用webpack作为构建系统的react PWA上工作。对于服务人员,我们使用的是版本2.1.2 有一个用JSON响应的GET api。将路线登记到 'use strict'; importScripts('workbox-sw.prod.js'); const workboxSW = new WorkboxSW({ clientsClaim: true, skipWaiting: true }); workboxSW.LOG_LEVEL = 'debug';

正在使用webpack作为构建系统的react PWA上工作。对于服务人员,我们使用的是版本2.1.2

  • 有一个用JSON响应的GET api。将路线登记到

    'use strict';
     importScripts('workbox-sw.prod.js');
     const workboxSW = new WorkboxSW({
        clientsClaim: true,
        skipWaiting: true
     });
     workboxSW.LOG_LEVEL = 'debug';
     workboxSW.precache([]);
     workboxSW.router.registerRoute(
              'http://localhost:5000/dist/abc/123',
               workboxSW.strategies.staleWhileRevalidate({
                     cacheName: 'apis',
                     cacheExpiration: {
                         maxEntries: 50,
                         maxAgeSeconds: 30 * 24 * 60 * 60
                     },
                     cacheableResponse: {statuses: [0, 200]}
                })
             );
    self.addEventListener('install', () => {
       self.skipWaiting();
    });
    
确保新的服务人员已加载。当API调用返回状态为200时,缓存存储下没有创建缓存API。因此它也不能脱机工作,请参见 验证了以下内容:

  • 请求更正URL
  • 代码流在service worker安装阶段命中registerRoute
  • 没有错误消息。调试消息也没有给出任何线索。有没有办法启用更多调试
  • 服务工作者已在适当的作用域下注册,调试消息
    服务工作者已在作用域中注册成功:http://localhost:8081/dist/
API:
http://localhost:5000/dist/abc/123

调用的API,
http://localhost:5000/dist/abc/123/
。请注意,这是一个跨站点调用,调用的基本页面是
http://localhost:8000
。如前所述,API调用成功并返回状态为200的响应


我对serviceworker/workbox很陌生。任何关于这方面的指示都将不胜感激

您应该尝试使用https运行应用程序,并在选项中传递cors参数

如mdn文档中所述