Angular 5 应用程序未注册服务 worker

标签 angular angular-cli service-worker

我已经构建了一个应用程序,软件运行良好。我继续开发而不关注SW ... 现在,在为应用程序充电时不再有软件下载(就好像应用程序没有注册软件一样)。

我非常绝望,因为我不知道如何调试/找到有关该问题的线索。 如何跟踪 SW 注册过程?

更多上下文:

  • 我有:
    • "serviceWorker": true in .angular-cli.json
    • ServiceWorkerModule.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.productiontrue(它是)
    • 执行相同的过程从头开始生成另一个空应用程序(在这种情况下 SW 可以工作...)

我可以检查其他东西吗?我是不是忘记了什么?

如果不是,我的最后两个解决方案是:

  • 在空应用程序中逐个模块移动以在不了解错误的情况下解决问题
  • 点燃火焰 + 萨满歌曲...

最佳答案

问题似乎是由 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/

相关文章:

来自另一个组件的 Angular 9 调用函数

javascript - 将上传文件转换为字节数组以发送到 Angular/Typescript 中的 API 请求

angular - DevExtreme Angular2 Form 的自定义标签

javascript - Firefox 类型错误 : ServiceWorker script encountered an error during installation

javascript - Angular2 和 node.js

angular-cli - 无法解析依赖项 : npm ERR! peer @angular/compiler @"11.2.8"

angular - "RxJS could not find any global context"

angular-cli 如何添加 sass 和/或 bootstrap?

javascript - Service Worker 获取数据时出现问题

facebook - 在 Facebook 浏览器中更新 Service Worker