|  | @@ -13,31 +13,29 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // If the loader is already loaded, just stop.
 | 
	
		
			
				|  |  |  if (!self.define) {
 | 
	
		
			
				|  |  | -  let registry = {};
 | 
	
		
			
				|  |  | +  const registry = {};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Used for `eval` and `importScripts` where we can't get script URL by other means.
 | 
	
		
			
				|  |  |    // In both cases, it's safe to use a global var because those functions are synchronous.
 | 
	
		
			
				|  |  |    let nextDefineUri;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const singleRequire = (uri, parentUri) => {
 | 
	
		
			
				|  |  | -    uri = new URL(uri + ".js", parentUri).href;
 | 
	
		
			
				|  |  | -    return registry[uri] || (
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | -        new Promise(resolve => {
 | 
	
		
			
				|  |  | -          if ("document" in self) {
 | 
	
		
			
				|  |  | -            const script = document.createElement("script");
 | 
	
		
			
				|  |  | -            script.src = uri;
 | 
	
		
			
				|  |  | -            script.onload = resolve;
 | 
	
		
			
				|  |  | -            document.head.appendChild(script);
 | 
	
		
			
				|  |  | -          } else {
 | 
	
		
			
				|  |  | -            nextDefineUri = uri;
 | 
	
		
			
				|  |  | -            importScripts(uri);
 | 
	
		
			
				|  |  | -            resolve();
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | -      .then(() => {
 | 
	
		
			
				|  |  | -        let promise = registry[uri];
 | 
	
		
			
				|  |  | +    uri = new URL(uri + '.js', parentUri).href;
 | 
	
		
			
				|  |  | +    return (
 | 
	
		
			
				|  |  | +      registry[uri] ||
 | 
	
		
			
				|  |  | +      new Promise(resolve => {
 | 
	
		
			
				|  |  | +        if ('document' in self) {
 | 
	
		
			
				|  |  | +          const script = document.createElement('script');
 | 
	
		
			
				|  |  | +          script.src = uri;
 | 
	
		
			
				|  |  | +          script.onload = resolve;
 | 
	
		
			
				|  |  | +          document.head.appendChild(script);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          nextDefineUri = uri;
 | 
	
		
			
				|  |  | +          importScripts(uri);
 | 
	
		
			
				|  |  | +          resolve();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }).then(() => {
 | 
	
		
			
				|  |  | +        const promise = registry[uri];
 | 
	
		
			
				|  |  |          if (!promise) {
 | 
	
		
			
				|  |  |            throw new Error(`Module ${uri} didn’t register its module`);
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -47,27 +45,31 @@ if (!self.define) {
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    self.define = (depsNames, factory) => {
 | 
	
		
			
				|  |  | -    const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href;
 | 
	
		
			
				|  |  | +    const uri =
 | 
	
		
			
				|  |  | +      nextDefineUri ||
 | 
	
		
			
				|  |  | +      ('document' in self ? document.currentScript.src : '') ||
 | 
	
		
			
				|  |  | +      location.href;
 | 
	
		
			
				|  |  |      if (registry[uri]) {
 | 
	
		
			
				|  |  |        // Module is already loading or loaded.
 | 
	
		
			
				|  |  |        return;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    let exports = {};
 | 
	
		
			
				|  |  | +    const exports = {};
 | 
	
		
			
				|  |  |      const require = depUri => singleRequire(depUri, uri);
 | 
	
		
			
				|  |  |      const specialDeps = {
 | 
	
		
			
				|  |  |        module: { uri },
 | 
	
		
			
				|  |  |        exports,
 | 
	
		
			
				|  |  |        require
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  | -    registry[uri] = Promise.all(depsNames.map(
 | 
	
		
			
				|  |  | -      depName => specialDeps[depName] || require(depName)
 | 
	
		
			
				|  |  | -    )).then(deps => {
 | 
	
		
			
				|  |  | +    registry[uri] = Promise.all(
 | 
	
		
			
				|  |  | +      depsNames.map(depName => specialDeps[depName] || require(depName))
 | 
	
		
			
				|  |  | +    ).then(deps => {
 | 
	
		
			
				|  |  |        factory(...deps);
 | 
	
		
			
				|  |  |        return exports;
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -define(['./workbox-5357ef54'], (function (workbox) { 'use strict';
 | 
	
		
			
				|  |  | +define(['./workbox-5357ef54'], function (workbox) {
 | 
	
		
			
				|  |  | +  ('use strict');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    self.skipWaiting();
 | 
	
		
			
				|  |  |    workbox.clientsClaim();
 | 
	
	
		
			
				|  | @@ -77,16 +79,33 @@ define(['./workbox-5357ef54'], (function (workbox) { 'use strict';
 | 
	
		
			
				|  |  |     * requests for URLs in the manifest.
 | 
	
		
			
				|  |  |     * See https://goo.gl/S9QRab
 | 
	
		
			
				|  |  |     */
 | 
	
		
			
				|  |  | -  workbox.precacheAndRoute([{
 | 
	
		
			
				|  |  | -    "url": "registerSW.js",
 | 
	
		
			
				|  |  | -    "revision": "3ca0b8505b4bec776b69afdba2768812"
 | 
	
		
			
				|  |  | -  }, {
 | 
	
		
			
				|  |  | -    "url": "index.html",
 | 
	
		
			
				|  |  | -    "revision": "0.3vo3lspd3m"
 | 
	
		
			
				|  |  | -  }], {});
 | 
	
		
			
				|  |  | -  workbox.cleanupOutdatedCaches();
 | 
	
		
			
				|  |  | -  workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
 | 
	
		
			
				|  |  | -    allowlist: [/^\/$/]
 | 
	
		
			
				|  |  | -  }));
 | 
	
		
			
				|  |  | +  workbox.precacheAndRoute(
 | 
	
		
			
				|  |  | +    [
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        url: 'registerSW.js',
 | 
	
		
			
				|  |  | +        revision: '3ca0b8505b4bec776b69afdba2768812'
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        url: 'index.html',
 | 
	
		
			
				|  |  | +        revision: '0.3vo3lspd3m'
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    ],
 | 
	
		
			
				|  |  | +    {}
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | +  /**
 | 
	
		
			
				|  |  | +   * https://juejin.cn/post/6844903881189621767
 | 
	
		
			
				|  |  | +   * 缓存策略 有5种
 | 
	
		
			
				|  |  | +   */
 | 
	
		
			
				|  |  | +  workbox.cleanupOutdatedCaches();
 | 
	
		
			
				|  |  | +  workbox.registerRoute(
 | 
	
		
			
				|  |  | +    new workbox.NavigationRoute(workbox.createHandlerBoundToURL('index.html'), {
 | 
	
		
			
				|  |  | +      allowlist: [/^\/$/]
 | 
	
		
			
				|  |  | +    }),
 | 
	
		
			
				|  |  | +    workbox.strategies.NetworkFirst()
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  workbox.routing.registerRoute(
 | 
	
		
			
				|  |  | +    new RegExp('.*.html|css|js'),
 | 
	
		
			
				|  |  | +    workbox.strategies.NetworkFirst()
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +});
 |