0

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

距离(部分)

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

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

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

服务人员选项卡

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

提前感谢您的帮助!

4

1 回答 1

0

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

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

正如这里所解释的,您的代码库或依赖项中可能存在一些问题。我现在更喜欢使用解决方法,直到 Angular 团队给出官方解决方案。

于 2018-03-26T17:11:44.113 回答