Estoy usando laravel-mix-workbox para agrupar y crear un trabajador de servicio. El trabajador del servicio se ejecuta como se esperaba, pero aparentemente no hay archivos de precaché porque no funciona sin conexión (sin contenido cuando está sin conexión después de una recarga).
Pila: Laravel 8, Vue 2, Workbox 6, Laravel-mix 6
// webpack.mix.js const mix = require('laravel-mix'); require('laravel-mix-workbox'); mix.js('resources/js/app.js', 'public/js') .vue() .sass('resources/sass/app.scss', 'public/css') .sourceMaps(false) .generateSW()esto es lo que probé:
// app.js if ('serviceWorker' in navigator) { const wb = new Workbox('/service-worker.js') wb.addEventListener('install', (event) => { event.waitUntil(caches.open('v1').then(cache => { return cache.addAll([ '/', '/index.html', '/favicon.ico', '/img/app_bar_text.jpg', // (etc...) ]) })) }) wb.addEventListener('fetch', event => { event.respondWith(caches.match(event.request).then(response => { if (response) return response; return fetch(event.request) })) }) window.addEventListener('load', async () => { await wb.register('service-worker.js') }) }Pero, el trabajador de servicio generado no incluye ningún archivo que especifique y no contiene contenido cuando está desconectado.
¿Tengo que enumerar explícitamente todos los archivos sin conexión? ¿Esta lista de archivos en caché (URL) debería ir en app.js o webpack.mix.js? Si webpack.mix.js, ¿cómo?