Búsqueda de sitios web

javascript - Invalidar el service worker de Angular/forzar la actualización en el lado del servidor


¿Existe alguna manera de obligar a los usuarios a recargar mi aplicación web y evitar el service worker local, tal vez mediante alguna configuración en mi servidor web (nginx) o algún otro medio?

Antecedentes: Tengo un pequeño problema: tengo una aplicación Angular con service worker, que ya está en caché en las máquinas de las personas. El código a continuación muestra cómo verifica si hay actualizaciones, muestra un mensaje de actualización y luego realiza la actualización, una vez que se descarta el mensaje de actualización. Desafortunadamente, hay un error en el mensaje de actualización (snackbarService.showVersionUpdate()) que hace que updates.activateUpdate() nunca se llame. Por lo tanto, se sigue utilizando la versión antigua y en caché del frontend hasta que la ventana del navegador se cierra y se vuelve a abrir o se recarga con Ctrl+F5.

El problema es que todas las correcciones al código solo entran en efecto después de una actualización del service worker, que en sí mismo es el problema.

constructor(updates: SwUpdate, snackbarService: SnackbarService) {
    updates.checkForUpdate();
    updates.available.subscribe(event => {
        // Show snackbar
        const snackBar = snackbarService.showVersionUpdate();
        snackBar.afterDismissed().subscribe(() => {
            updates.activateUpdate().then(() => {
                window.location.reload();
            });
        });
    });
}

¡Estoy agradecido por cualquier solución o idea!

Editar: Encontré esta respuesta, que habla sobre actualizar el propio service worker. ¿Alguien sabe cómo hacer eso con el service worker de Angular?