Vue CLI 4 - 清单中的 PWA 插件预缓存无法获取 index.html 且未注册服务工作者
Vue CLI 4 - PWA plugin pre-cache in manifest fails to fetch index.html and doesn't register the service worker
将 Vue CLI 3 更新到 CLI 4 后,service worker 停止注册。
环境:
Firebase hosting,
"vue": "^2.6.10",
"vuex": "^3.1.1",
"firebase": "^7.2.3",
"vuetify": "^2.1.9",
"core-js": "^3.3.6",
...
"@vue/cli-plugin-pwa": "^4.0.5",
我看到失败发生在 /index.html 页面上生成的预缓存清单文件上:
// precache-manifest.326028534d4ff40f4be7a15fc11e84c6.js
...
{
"revision": "7eeb3269c508ac628b85ccfaa20744ab",
"url": "/index.html"
},
...
我试图从 workboxOptions 中禁用 'skipWaiting',因为我使用延迟加载路由,如文档所述,但它没有做任何事情:
pwa:{
workboxOptions: {
skipWaiting: false,
}
}
网络选项卡中的错误是:
如果我手动注释掉已编译的 precache-manifest 文件中的行,那么 service worker 可以正常工作。没看懂。
原来问题出在firebase.json
的配置上,在托管部分,我启用了"cleanUrls": true
。删除它会使 service worker 再次注册。
这是现在的样子,默认设置:
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
将 Vue CLI 3 更新到 CLI 4 后,service worker 停止注册。
环境:
Firebase hosting,
"vue": "^2.6.10",
"vuex": "^3.1.1",
"firebase": "^7.2.3",
"vuetify": "^2.1.9",
"core-js": "^3.3.6",
...
"@vue/cli-plugin-pwa": "^4.0.5",
我看到失败发生在 /index.html 页面上生成的预缓存清单文件上:
// precache-manifest.326028534d4ff40f4be7a15fc11e84c6.js
...
{
"revision": "7eeb3269c508ac628b85ccfaa20744ab",
"url": "/index.html"
},
...
我试图从 workboxOptions 中禁用 'skipWaiting',因为我使用延迟加载路由,如文档所述,但它没有做任何事情:
pwa:{
workboxOptions: {
skipWaiting: false,
}
}
网络选项卡中的错误是:
如果我手动注释掉已编译的 precache-manifest 文件中的行,那么 service worker 可以正常工作。没看懂。
原来问题出在firebase.json
的配置上,在托管部分,我启用了"cleanUrls": true
。删除它会使 service worker 再次注册。
这是现在的样子,默认设置:
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},