0

我正在使用 sw-precache 并且我知道为了编辑 service-worker.js 文件,我需要这样做(如 service-worker.js 文件中所述)

// 此文件应作为构建过程的一部分被覆盖。// 如果您需要扩展生成的 service worker 的行为,最好的方法是编写 // 附加代码并使用 importScripts 选项包含它: // https://github.com/GoogleChrome/sw-precache#importscripts -数组字符串

但我不知道在哪里添加 importscripts() 代码。它是否在 service-worker.js 文件中?当然,这在每个项目构建中都会被覆盖。

4

2 回答 2

1

像这样包括它:

importScripts: ['custom-offline-import.js']

这是一个配置示例,最后包含 importScripts 配置选项:

var packageJson = require('../package.json');
var swPrecache = require('../lib/sw-precache.js');
var path = require('path');

function writeServiceWorkerFile(rootDir, handleFetch, callback) {

  var config = {
    cacheId: packageJson.name,
    runtimeCaching: [{
      // See https://github.com/GoogleChrome/sw-toolbox#methods
      urlPattern: /runtime-caching/,
      handler: 'cacheFirst'
    }],
    staticFileGlobs: [rootDir + '/**/*.{js,html,css,png,jpg,gif}'],
    stripPrefix: rootDir,
    importScripts: ['custom-offline-import.js']
  };

  swPrecache.write(path.join(rootDir, 'service-worker.js'), config, callback);
}

希望我能帮助你!

于 2018-07-04T14:01:00.823 回答
0

将其添加到 sw-precache-config.js 文件中。

很好的例子: Rewrite URL offline when using a service worker

于 2017-09-11T12:33:04.210 回答