【问题标题】:@angular/service-worker silent failure@angular/service-worker 静默失败
【发布时间】:2018-03-27 01:11:44
【问题描述】:

我已在多个项目中成功使用了@angular/service-worker 模块,但在我似乎无法调试的最新项目中遇到了静默失败问题。我的配置和设置与其他项目相同,输出的构建(通过 CLI v1.6.2)似乎正确:

dist (partial)

我最初的想法是我的环境变量有问题,所以我通过日志记录确保构建后enabledtrue,甚至在所有环境中硬编码只是为了测试:

ServiceWorkerModule.register('/ngsw-worker.js', {
  enabled: true
})

然而,当我运行应用程序时,无论是在本地使用 http-server 还是在启用了 prod 模式的开发或 qa 环境中,开发工具中都没有注册服务工作者,控制台中也没有错误或警告:

service worker tab

有没有人知道在这种情况下可能导致静默失败的原因是什么?我已经绞尽脑汁,将工作解决方案与此进行比较,似乎无法提出解决方案。另外,有没有办法进一步调试这种类型的场景?

提前感谢您的帮助!

【问题讨论】:

    标签: angular-service-worker


    【解决方案1】:

    您可以在 main.ts 文件中使用此解决方法:

    platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
      if ('serviceWorker' in navigator && environment.production) {
        navigator.serviceWorker.register('/ngsw-worker.js');
      }
    }).catch(err => console.log(err));

    正如here 解释的那样,您的代码库或依赖项中可能存在一些问题。在 Angular 团队给出官方解决方案之前,我现在更喜欢使用该解决方法。

    【讨论】:

      猜你喜欢
      • 2020-06-09
      • 2017-01-01
      • 2022-10-08
      • 2018-12-12
      • 2018-07-27
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      相关资源
      最近更新 更多