对sw-precache服务工作者进行更改

时间:2017-09-11 11:50:41

标签: service-worker sw-precache

我正在使用sw-precache,我理解为了编辑service-worker.js文件,我需要这样做(详见service-worker.js文件)

//作为构建过程的一部分,应该覆盖此文件。 //如果需要扩展生成的服务工作者的行为,最好的方法是编写 //其他代码并使用importScripts选项包含它: // https://github.com/GoogleChrome/sw-precache#importscripts-arraystring

但我不知道在哪里添加importscripts()代码。它是否包含在service-worker.js文件中?当然,每次项目构建都会过度使用。

2 个答案:

答案 0 :(得分:1)

只需像这样包含它:

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

下面是一个示例,该示例的配置末尾包含importScripts config选项:

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);
}

希望我能帮助您!

答案 1 :(得分:0)

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

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