我已经安装了 workbox-cli 并且除了默认设置之外,在文件中添加了一个小脚本package.json
并调用命令workbox generate:sw
来生成sw.js
我刚刚运行的文件npm run generate-sw
,然后这给了我sw.js
包含所有文件和修订的文件。我在底部的 index.html 中添加了检查和运行服务工作者的脚本
<script>
if ('serviceWorker' in navigator && 'PushManager' in window) {
// console.log('Service Worker and Push is supported');
navigator.serviceWorker.register('src/sw.js')
.then(function(swReg) {
console.log('Service Worker is registered', swReg);
// swRegistration = swReg;
})
.catch(function(error) {
console.error('Service Worker Error', error);
});
} else {
console.warn('Push messaging is not supported');
// pushButton.textContent = 'Push Not Supported';
}
当我运行 Angular 应用程序时,它会构建所有文件并总是给出错误Failed to register a ServiceWorker: A bad HTTP response code (404) was received when fetching the script
我已经更改swDest
但workbox-cli-config
无法让它添加sw.js
文件。我是否错过了 Angular 正在做的事情?
我也尝试将脚本放入main.ts
并尝试在那里注册,但仍然出现相同的错误。
Workbox 看起来很简单!