importScripts("precache-manifest.2b1a416144c18e089f59ff3b389f6b86.js", "workbox-v3.6.3/workbox-sw.js");
workbox.setConfig({modulePathPrefix: "workbox-v3.6.3"});
// 设置为开发模式
workbox.setConfig({ debug: true });
// 设置为线上生产模式
// workbox.setConfig({debug: false});

// 展示所有的 log
workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug);
// 只展示 log, warning 和 error 类型的 log
// workbox.core.setLogLevel(workbox.core.LOG_LEVELS.log);
// // 只展示 warning 和 error 类型的 log
// workbox.core.setLogLevel(workbox.core.LOG_LEVELS.warn);
// // 只展示 error 类型的 log
// workbox.core.setLogLevel(workbox.core.LOG_LEVELS.error);
// // 啥 log 都没有，这个适用于线上生产环境
// workbox.core.setLogLevel(workbox.core.LOG_LEVELS.silent);


// set the prefix and suffix of our sw's name
workbox.core.setCacheNameDetails({
  prefix: 'prd',
  suffix: 'v1.0.0',
});
// have our sw update and control a web page as soon as possible.
workbox.skipWaiting();
workbox.clientsClaim();



// vue-cli3.0 supports pwa with the help of workbox-webpack-plugin, we need to get the precacheing list through this sentence.
//workbox.precaching中的是install以后要塞进caches中的内容
workbox.precaching.precacheAndRoute([]);

// cache our data, and use networkFirst strategy.
//workbox.routing.registerRoute中第一个参数是一个正则，匹配经过fetch事件的所有请求，如果匹配上了，就走相应的缓存策略
workbox.routing.registerRoute(
  new RegExp('^https://elm.cangdu.org/v2/'),
  new workbox.strategies.NetworkFirst({cacheName: 'test-cache',})
);
workbox.routing.registerRoute(
  new RegExp('^http://show.n22.com.cn:8785/api/product/uat/productEngine/getProductDef/1070006/*'),
  new workbox.strategies.NetworkFirst({cacheName: 'test2-cache',})
);
// workbox.routing.registerRoute(
//   new RegExp('.*experiments/\\d'),
//   workbox.strategies.networkFirst()
// )
// workbox.routing.registerRoute(
//   new RegExp('.*experiment_types.*'),
//   workbox.strategies.networkFirst()
// )


  // workbox.precaching([
  //   // 注册成功后要立即缓存的资源列表
  // ])

  // // html的缓存策略
  // workbox.routing.registerRoute(
  //   new RegExp('.*\.html'),
  //   workbox.strategies.networkFirst()
  // );

  // workbox.routing.registerRoute(
  //   new RegExp('.*\.(?:js|css)'),
  //   workbox.strategies.cacheFirst()
  // );

  // workbox.routing.registerRoute(
  //   new RegExp('https://your\.cdn\.com/'),
  //   workbox.strategies.staleWhileRevalidate()
  // );

  // workbox.routing.registerRoute(
  //   new RegExp('https://your\.img\.cdn\.com/'),
  //   workbox.strategies.cacheFirst({
  //     cacheName: 'example:img'
  //   })
  // );

