Nuxt pwa не регистрирует сервис-воркер - PullRequest
2 голосов
/ 07 мая 2020

Я пытаюсь запустить автономное кеширование в Nuxt через пакет @ nuxt / pwa. Когда я проверяю chrome devtool / application, не видно, чтобы зарегистрировать сервис-воркер.

Я не уверен, что я что-то упускаю. Прямо сейчас я сделал только следующие дополнения к моему файлу nuxt.config

pwa: {
    icon: {
      iconSrc: './static/logo.jpeg'
    },
    manifest: {
      lang: 'en',
      short_name: 'P',
      name: 'Project',
      start_url: '/',
      display: 'standalone',
      theme_color: '#00b5ad'
    },
    workbox: {
      /* workbox options */
      dev: false,
      offlineStrategy: 'StaleWhileRevalidate',
      runtimeCaching: [
        {
          urlPattern: 'https://media.giphy.com/media/.*',
          handler: 'cacheFirst',
          method: 'GET',
          strategyOptions: {
            cacheName: 'giphy',
            cacheExpiration: {
              maxEntries: 100,
              maxAgeSeconds: 60 * 60 * 24 * 10
            }
          }
        }        
      ]
    }
  }

Наряду с этим я добавил '@nuxtjs/pwa' под модулями.

Я заметил, что файл sw. Файл js создается в файле stati c. Но ничего не кэшируется.

enter image description here

SW. js выглядит следующим образом:

importScripts('https://cdn.jsdelivr.net/npm/workbox-cdn@4.3.1/workbox/workbox-sw.js')

// --------------------------------------------------
// Configure
// --------------------------------------------------

// Set workbox config
workbox.setConfig({
  "debug": false
})

// Start controlling any existing clients as soon as it activates
workbox.core.clientsClaim()

// Skip over the SW waiting lifecycle stage
workbox.core.skipWaiting()

workbox.precaching.cleanupOutdatedCaches()

// --------------------------------------------------
// Precaches
// --------------------------------------------------

// Precache assets

// --------------------------------------------------
// Runtime Caching
// --------------------------------------------------

// Register route handlers for runtimeCaching
workbox.routing.registerRoute(new RegExp('https://media.giphy.com/media/.*'), new workbox.strategies.CacheFirst ({"cacheName":"giphy","cacheExpiration":{"maxEntries":100,"maxAgeSeconds":864000}}), 'GET')    
workbox.routing.registerRoute(new RegExp('/_nuxt/'), new workbox.strategies.CacheFirst ({}), 'GET')
workbox.routing.registerRoute(new RegExp('/'), new workbox.strategies.StaleWhileRevalidate ({}), 'GET')

1 Ответ

0 голосов
/ 07 мая 2020

Не рекомендуется тестировать рабочее окно в режиме разработки (npm run dev)
см. Do c: https://pwa.nuxtjs.org/modules/workbox.html#dev

Вы должны тестировать в производственном режиме с localhost hostname.
Так что запустите приложение с npm run build && npm run start и go на http://localhost:3000/

Затем вы должны увидеть следующее сообщение на панели консоли:
[workbox] Welcome to Workbox! --- workbox-core.dev.js:132

...