fix: Added serviceWorker env and fixed #19

This commit is contained in:
2025-05-20 20:58:52 +02:00
parent 90d5b5da1c
commit 7d98cc2c49
5 changed files with 53 additions and 9 deletions

View File

@@ -70,6 +70,30 @@
"with": "src/environments/environment.development.ts"
}
]
},
"swDevelopment": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": true,
"extractLicenses": false,
"sourceMap": true,
"namedChunks": true,
"outputHashing": "all",
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.swdev.ts"
}
],
"assets": [
{
"glob": "ngsw-worker.js",
"input": "node_modules/@angular/servce-worker",
"output": "."
},
"src/ngsw.json",
"src/manifest.webmanifest"
]
}
},
"defaultConfiguration": "production"

View File

@@ -1,16 +1,16 @@
{
"$schema": "./node_modules/@angular/service-worker/config/schema.json",
"index": "./index.html",
"index": "/ipwa/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/manifest.webmanifest",
"/*.css",
"/*.js"
"/ipwa/favicon.ico",
"/ipwa/manifest.webmanifest",
"/ipwa/*.css",
"/ipwa/*.js"
]
}
},
@@ -20,8 +20,8 @@
"updateMode": "prefetch",
"resources": {
"files": [
"./assets/**",
"/**/*.(svg|cur|jpg|jpeg|png|apng|webp|avif|gif|otf|ttf|woff|woff2)"
"/ipwa/assets/**",
"/ipwa/**/*.(svg|cur|jpg|jpeg|png|apng|webp|avif|gif|otf|ttf|woff|woff2)"
]
}
}

View File

@@ -78,6 +78,7 @@ import { AttendenceComponent } from './admin-view/grades/attendence/attendence.c
import { AttendenceSummaryComponent } from './admin-view/grades/attendence-summary/attendence-summary.component';
import { HourDisplayComponent } from './admin-view/grades/attendence-summary/hour-display/hour-display.component';
import { AboutComponent } from './app-view/personal/about/about.component';
import { environment } from 'src/environments/environment';
@NgModule({
declarations: [
@@ -160,7 +161,7 @@ import { AboutComponent } from './app-view/personal/about/about.component';
A11yModule,
MatAutocompleteModule,
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: !isDevMode(),
enabled: environment.production,
// Register the ServiceWorker as soon as the application is stable
// or after 30 seconds (whichever comes first).
registrationStrategy: 'registerWhenStable:30000'

View File

@@ -8,7 +8,21 @@ import { catchError, concat, first, from, interval, tap, throwError } from 'rxjs
})
export class AppUpdateService implements OnInit {
constructor(readonly appRef: ApplicationRef, readonly update: SwUpdate, readonly sb: MatSnackBar) { }
constructor(readonly appRef: ApplicationRef, readonly update: SwUpdate, readonly sb: MatSnackBar) {
this.update.versionUpdates.subscribe((evt) => {
switch (evt.type) {
case 'VERSION_DETECTED':
console.log(`Downloading ${evt.version.hash}`);
break;
case 'VERSION_READY':
console.log(`Current: ${evt.currentVersion.hash}, new: ${evt.latestVersion.hash}`);
break;
case 'VERSION_INSTALLATION_FAILED':
console.error(`Failed to install ${evt.version.hash}: ${evt.error}`);
break;
}
})
}
ngOnInit(): void {
const appIsStable = this.appRef.isStable.pipe(first(isStable => isStable === true))

View File

@@ -0,0 +1,5 @@
export const environment = {
apiEndpoint: `http://localhost:12230`,
version: "testing (swDev)",
production: true
};