es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PWA: Problemas de trabajador de servicios

Hola estoy intentando aprender PWA y tengo un problema con los service workers, básicamente cuando intento auditar a través de Lighthouse obtengo el siguiente error:

Service Worker no registrado: Error al registrar un ServiceWorker para el alcance ('http://127.0.0.1:5500/') con el script ('http: //127.0.0.1:5500/sw.js')

Aunque cuando inicio la aplicación, dice que ha sido activada y se está ejecutando en la pestaña de Aplicaciones en las herramientas de desarrollo. La información que registro en la consola también se muestra como registrada.

Edito:
Estoy registrando la siguiente información en la consola si ayuda.

Registro de ServiceWorker
activo: ServiceWorker {scriptURL: 'http://127.0.0.1:5500/sw.js',
 estado: 'activado', onstatechange: null, onerror: null}
backgroundFetch: BackgroundFetchManager {}
cookies: CookieStoreManager {}
instalación: nulo
navigationPreload: NavigationPreloadManager {}
onupdatefound: nulo
paymentManager: PaymentManager {instrumentos: PaymentInstruments,
 userHint: ''}
periodicSync: PeriodicSyncManager {}
pushManager: PushManager {}
scope: "http://127.0.0.1:5500/"
sync: SyncManager {}
updateViaCache: "imports"
esperando: nulo
[[Prototype]]: ServiceWorkerRegistration

También registro el service worker en un archivo llamado app.js así:

if ('serviceWorker' in navigator) {
     navigator.serviceWorker.register ('/sw.js')
         .then ((reg) => console.log ('Service Worker registrado.' ;, reg))
         .catch ((err) => console.log ('Service Worker no registrado.' ;, err));
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que has registrado correctamente tu trabajador de servicio, pero Lighthouse no puede detectarlo. Esto podría deberse a algunas razones:

    1. Alcance de la Auditoría de Lighthouse: En primer lugar, asegúrate de que Lighthouse esté auditando el alcance correcto. Parece que tu trabajador de servicio está registrado para el alcance `http://127.0.0.1:5500/`, así que asegúrate de que Lighthouse esté auditando esta misma URL.
    2. Entorno de Auditoría de Lighthouse: A veces, ciertas opciones o configuraciones en Lighthouse pueden hacer que no detecte el trabajador de servicio. Intenta ejecutar la auditoría en una ventana de incógnito fresca de Chrome o en un navegador totalmente diferente.

    3. Momento de Registro del Trabajador de Servicio: Es posible que el trabajador de servicio no esté totalmente registrado en el momento en que Lighthouse ejecuta la auditoría. Dado que el registro del trabajador de servicio es un proceso asíncrono, es importante asegurarte de que esté completamente registrado antes de ejecutar cualquier operación crítica que dependa de él. Intenta retrasar la auditoría de Lighthouse hasta que el trabajador de servicio haya tenido suficiente tiempo para registrarse completamente.

    En general, parece que tu trabajador de servicio está funcionando correctamente según los registros de la consola, por lo que el problema puede estar en Lighthouse en sí mismo.

Comments are closed.