我已经构建了一个应用程序,软件运行良好。我继续开发而不关注SW ... 现在,在为应用程序充电时不再有软件下载(就好像应用程序没有注册软件一样)。
我非常绝望,因为我不知道如何调试/找到有关该问题的线索。 如何跟踪 SW 注册过程?
更多上下文:
- 我有:
"serviceWorker": true
in .angular-cli.jsonServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
在我的 app.module.ts 中- 在 prod mod 中构建我的应用程序并使用 http-server 提供它(ngsw.json 和 ngsw-worker.js 都可以访问)
- 在开发模式下清理缓存(常规缓存和应用程序/清除存储)
- 我尝试:
- 更改 app.module 导入顺序(我尝试了
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
首先,BrowserModule 之后的第二个和最后一个)< - 验证
environment.production
是true
(它是) - 执行相同的过程从头开始生成另一个空应用程序(在这种情况下 SW 可以工作...)
- 更改 app.module 导入顺序(我尝试了
我可以检查其他东西吗?我是不是忘记了什么?
如果不是,我的最后两个解决方案是:
- 在空应用程序中逐个模块移动以在不了解错误的情况下解决问题
- 点燃火焰 + 萨满歌曲...
最佳答案
问题似乎是由 angularFire2
引起的。我遇到了同样的问题,但能够通过将以下代码放入我的 main.ts
文件中来解决它。
if ('serviceWorker' in navigator && environment.production) {
navigator.serviceWorker.register('/ngsw-worker.js');
}
关于Angular 5 应用程序未注册服务 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567743/