umi配置WorkboxPlugin, service-worker
首页 > >    作者:lininn   2023年8月4日 18:59 星期五   热度:456°   百度已收录  
时间:2023-8-4 18:59   热度:456° 
安装workbox-webpack-plugin插件
.umirc.ts 增加
import { generalWorkBoxConfig, swScript } from './config/config';
  chainWebpack: (config) => {
    if (process.env.NODE_ENV === 'production') {
      generalWorkBoxConfig(config);
    }
  },

headScripts: process.env.NODE_ENV === 'production' ? [swScript] : [],


config.js配置如下:

import { GenerateSW } from 'workbox-webpack-plugin';

export const swScript = `
if ('serviceWorker' in navigator) {
	window.addEventListener('load', () => {
		navigator.serviceWorker.register('/service-worker.js').then(registration => {
		console.log('SW registered: ', registration);
		}).catch(registrationError => {
		console.log('SW registration failed: ', registrationError);
		});
	});
}
`;

export function generalWorkBoxConfig(config) {
  config.plugin('WorkboxPlugin').use(GenerateSW, [
    {
      cacheId: 'removebg-sw',
      clientsClaim: true,
      skipWaiting: true,
      maximumFileSizeToCacheInBytes: 1,
      cleanupOutdatedCaches: true,
      runtimeCaching: [
        {
          urlPattern: ({ request }) => {
            const domain = new URL(request.url).host
              .split('.')
              .slice(-2)
              .join('.');
            let flag = false;
            let suffixArr = ['.onnx', '.wasm'];
            for (let suffix of suffixArr) {
              if (request.url.includes(suffix)) {
                flag = true;
                break;
              }
            }

            return domain === 'lininn.cn' && flag;
          },
          // handler: 'StaleWhileRevalidate',
          handler: 'CacheFirst',
        },
      ],
    },
  ]);
}

二维码加载中...
本文作者:lininn      文章标题: umi配置WorkboxPlugin, service-worker
本文地址:?post=587
版权声明:若无注明,本文皆为“覆手为雨”原创,转载请保留文章出处。
分享本文至:

返回顶部    首页    手机版本    后花园   会员注册   
版权所有:覆手为雨    站长: lininn