服务工作者已成功注册(已在devtools中显示),但尚未执行serviceworker.js文件中的代码。
我想使用webpack作为构建工具,将服务人员添加到我的Vue项目中。
其他一些有用的信息:
1.Serviceworker.js用作单独的条目文件,请确保文件输出名称仍为servicerworker.js(其他条目文件将通过哈希值重命名)
通过使用某些标志在chrome(特定来源)上通过HTTP启用服务工作者。您可以参考Command line option for whitelisting specific origins to ease development and testing of websites using Secure Origin only features。
3.WebpackConfig.js:devServer.publicPath为/static/
index.html:
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/static/serviceworker.js', {
scope: '/static/'
}).then(function (reg) {
console.log('Registration succeeded. Scope is ' + reg.scope);
}).catch(function (error) {
console.log('Registration failed with ' + error);
});
}
</script>
serviceworker.js:
console.log('Hello from sw.js')
预期:
我希望服务工作者能够成功注册。
控制台可以打印出:
“注册成功。范围是myOrigin / static /”
“来自sw.js的问候”
结果:
chrome:// serviceworker-internals /
控制台仅打印出:
“注册成功。范围是myOrigin / static /”
答案 0 :(得分:1)
我假设您的serviceworker.js文件仅包含这么多代码
console.log('Hello from sw.js');
这不起作用,您需要在serviceworker.js中添加一个事件监听器,然后在其中添加console.log。例如
self.addEventListener('fetch',function(event){
console.log('Hello from sw.js');
})
供参考https://developers.google.com/web/ilt/pwa/introduction-to-service-worker