我已经使用workbox-webpack-plugin
.
当我尝试预缓存文件时出现错误。
我得到的错误(见下图)
sw.js:1 Uncaught TypeError: e is not iterable
at d.addToCacheList (sw.js:1)
at sw.js:1
at sw.js:1
at sw.js:1
虽然self.__WB_MANIFEST
正确返回
0: {revision: "8601238f233fac234d7baf4d32a932d8", url: "favicon.ico"}
10: {revision: "70d6d945809b3a4bde074fb5a8e1a6ac", url: "register.js"}
我尝试调试workbox-precaching
但由于没有提供 gulpfile 而被卡住。我找不到 gulpfile node_modules/workbox-precaching
。
这里是我的代码 src/sw.js 的详细信息
import { precacheAndRoute } from 'workbox-precaching';
console.log(self.__WB_MANIFEST)
precacheAndRoute(self.__WB_MANIFEST);
webpack.config.js
plugins: [
...
new WorkboxPlugin.InjectManifest({
swSrc: './src/sw.js',
swDest: 'sw.js',
})
],
注册.js
if ("serviceWorker" in navigator) {
window.addEventListener("load", function () {
navigator.serviceWorker
.register("sw.js")
.then(function (registration) {
console.log(location.href, registration.scope);
})
.catch(function (error) {
console.log(error)
});
});
包.json
"webpack": "^5.4.0",
"webpack-cli": "3.3.12",
"workbox-webpack-plugin": "^5.1.4