Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-可以注册两次ngsw-worker.js(在main.ts和app.module.ts中)吗?_Angular_Angular Service Worker - Fatal编程技术网

Angular 角度-可以注册两次ngsw-worker.js(在main.ts和app.module.ts中)吗?

Angular 角度-可以注册两次ngsw-worker.js(在main.ts和app.module.ts中)吗?,angular,angular-service-worker,Angular,Angular Service Worker,我正在main.ts和app.module.ts中注册ngsw-worker.js。这样行吗 例如,它会创建2个service worker实例吗?服务人员是否会发生冲突 main.ts platformBrowserDynamic().bootstrapModule(AppModule).then(() => { if ('serviceWorker' in navigator && environment.production) { navigator.se

我正在main.ts和app.module.ts中注册ngsw-worker.js。这样行吗

例如,它会创建2个service worker实例吗?服务人员是否会发生冲突

main.ts

platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
  if ('serviceWorker' in navigator && environment.production) {
    navigator.serviceWorker.register('/ngsw-worker.js');
  }
}).catch(err => console.log(err));
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}),
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
}
应用程序模块.ts

platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
  if ('serviceWorker' in navigator && environment.production) {
    navigator.serviceWorker.register('/ngsw-worker.js');
  }
}).catch(err => console.log(err));
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}),
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
}
我在main.ts注册它是因为

它已在app.module.ts中注册,因为默认Angular cli SW项目将其添加到此处


在main.ts和app.module.ts中注册了服务工作者之后,我将Firebase Cloud Messaging sdk添加到服务工作者实例中

navigator.serviceWorker
          .ready
          .then((registration) => this.firebase.messaging().useServiceWorker(registration));

简单地说,注册两个ngsw-worker.js实例会有问题吗?

Hi。。我有你同样的问题,使用同样的东西(firebase消息)。。就我所见,我想是的。。它注册了2次。因为我收到了2个通知。。。。但也许我是worng@federicoscamuzzi这可以正常工作,但在main.ts中注册服务工作者会中断服务器端渲染。如果我移除这个ssr,效果很好。有什么帮助吗?我没试过SSR。