import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { environment } from '../environments/environment';
import { ServiceWorkerModule, SwUpdate } from '@angular/service-worker';
import { ServiceWorkerUpdatesModule } from 'service-worker-updates';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.production,
}),
ServiceWorkerUpdatesModule,
],
providers: [],
bootstrap: [AppComponent],
})
export class AppModule {
constructor(private swUpdate: SwUpdate) {
swUpdate.available.subscribe(event => {
if (confirm('New version available. Load New Version?')) {
window.location.reload();
}
});
}
}
{
"projects": {
"your-project-name": {
"architect": {
"build": {
"options": {
"assets": [
"src/assets",
"src/favicon.ico",
"src/manifest.json",
"src/sw.js"
]
}
}
}
}
}
}
self.addEventListener('fetch', event => {});
通过这些步骤,我们已经将SwUpdate更新提醒和重新加载功能添加到PWA中,而不会导致不必要的更新。