私はサービスワーカーを生成するためにワークボックス2.1.0を使用しています。サーバーのassetsディレクトリ(index.htmlとclear.pngなど)とCDNの1つのファイルからいくつかのファイルをプリキャッシュする必要があります(たとえば、https://akamai.com/dummy/path/app.js)。 私は建物のために塊茎を使用しています。これは、コードがワークボックス2.1.0のプリキャッシングに関する問題
のでgulp.task('sw',() => {
return wbBuild.generateSW({
globDirectory: '.',
swDest: 'sw_gulp_generated.js',
staticFileGlobs: [
'index.html',
'clear.png'
],
verbose: true,
})
.then(() => {
console.log('Service worker generated.');
})
.catch((err) => {
console.log('[ERROR] This happened: ' + err);
});
});
をどのようになる、これは正常に動作され、生成されたサービスワーカーは、プリキャッシュリスト内のファイルは、ここにそれが行くた両方:
const fileManifest = [
{
"url": "index.html",
"revision": "b6eb7cd7599ed6584a715cdfc75a81c0"
},
{
"url": "clear.png",
"revision": "e17de36d2c2ddf7b068892fa4678cd31"
},
];
const workboxSW = new self.WorkboxSW();
workboxSW.precache(fileManifest);
//more code follows ...
私がテストし、それが完璧に動作
質問はです。第3のアセット(https://akamai.com/dummy/path/app.js)をプレキャッシュリストに追加するにはどうすればよいですか。私はstaticFileGlobs
でそれを入れてみましたが、それはエラーが出て言って:
One of the glob patterns doesn't match any files
それはglobDirectory
内のファイルhttps://akamai.com/dummy/path/app.jsを見つけようとすると、それを見つけることができないため。
基本的に、gulp(または任意のビルドツール)を使用しているときに、生成されたサービスワーカーのプリキャッシュリストにCDN URLを挿入するにはどうすればよいですか?
私はプリキャッシュリストにhttps://akamai.com/dummy/path/app.jsを含むように生成サービスワーカーを編集してみました、そして、それは 'constのfileManifest = [{ "URL" を働きました"index.htmlを"、 "改訂": "b6eb7cd7599ed6584a715cdfc75a81c0"}、{ "URL":「https://akamai.com/dummy/path/app.js "、 "改訂": "577cd1b1345e3676cc5a4e2acce85191"} 、{ "URL": "clear.png"、 "改訂": "e17de36d2c2ddf7b068892fa4678cd31"}]; CONST workboxSW =新しいself.WorkboxSW(); WO rkboxSW.precache(fileManifest); ' Gulpのビルドプロセス中にそれを達成する方法が残っていますか? –