我使用Webpack和swPrecache。swPrecache为我生成了一个service-worker.js文件,现在我想将自定义代码附加到生成的文件中。
我创建了一个Webpack插件,将babel转换后的代码附加到service-worker.js文件中,如下所示:
swPrecache.write(filePath, options, (function(err) {
// If we want to append an additional file.
if (options.appendFile) {
var sync = fs.readFile(options.appendFile, (error, code) => {
if (error) {
throw error;
}
let transformed = babel.transform(code, options.babelConfig || {});
fs.appendFile(filePath, transformed.code);
});
}
callback(err);
}));
然而,这并不包括使require()
在我附加的文件中工作的代码。我相信我需要使用Webpack来生成service-worker.js文件,但我不确定如何做到这一点,可能通过自定义入口点?
要将自定义脚本包含到生成的serviceWorker中,建议使用sw-precache
config中的importScripts
选项。