Angular - можно ли дважды регистрировать ngsw-worker.js (в main.ts & app.module.ts)? - PullRequest
0 голосов
/ 29 июня 2018

Я регистрирую ngsw-worker.js как в main.ts, так и в app.module.ts. Это нормально?

Как бы это создало 2 экземпляра сервисного работника? Будет ли конфликт в сервисном работнике?

main.ts

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

app.module.ts

@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 я добавляю SDK Firebase Cloud Messaging в экземпляры Service Worker.

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

Итак, вкратце, регистрация двух экземпляров ngsw-worker.js будет проблемой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...