«Доступна новая версия» с сервисным работником и sw-precache

Я пытаюсь использоватьsw-precacheно я, должно быть, делаю что-то не так!

Я в основном использую демо-код, доступный изGitHub репо и не могу получить обновления приложения, чтобы пройти. После первого кэширования он никогда не проверяет наличие новых версий.

Я ожидал, что когда я опубликую нового работника сервиса, браузер запросит нового работника сервиса и обновит кеш соответственно в фоновом режиме. Затем с помощьюрегистрационный код в примереЯ мог бы предложить пользователю обновить и получить последнюю версию из недавно обновленного кэша.

Буду очень признателен, если кто-то может указать мне в правильном направлении.

пример

Чтобы продемонстрировать проблему, я создал отдельный пример:https://github.com/stevenocchipinti/sw-precache-demo

В примере используется базовый скелет изcreate-react-app которая имеет встроенную задачу сборки, которая заботится о дактилоскопии имен файлов и т. д.

Я подозреваю, что проблема со мной, кэшируя все, используя следующиеsw-precache конфигурации:

{
  "staticFileGlobs": [ "build/**/*.*" ],
  "stripPrefix": "build/"
}

В файле readme репозитория есть более точные шаги, но основные шаги, которые я предпринимаю, чтобы воспроизвести проблему, заключаются в следующем (с моими, вероятно, неверными ожиданиями).

Шаги и предположения

Перейдите к приложению для первого
Я должен увидетьContent is now available offline! в консоли

Перезагрузить страницу
Сообщение в консоли не должно появляться снова, потому что работник службы установлен, но страница все равно должна работать.

Перейдите в автономный режим и перезагрузите страницу
Страница должна все еще работать

Внести видимые изменения в исходный код

Перестроить (запустить задачу сборки иsw-precache)

Это где мое понимание должно быть неправильно

Перезагрузить страницу

Сервисный работник должен обновить кеш в фоновом режимеКогда это будет сделано, вы должны увидетьNew or updated content is available. в консолиФактические видимые изменения не должны быть видны до следующей перезагрузки

Перезагрузите страницу снова

В этот раз браузер будет использовать новый кешИзменения должны быть видны сейчас!Там не должно быть никаких сообщений в консолиЭта проблема

После первоначального кэширования приложение никогда не обновится, если вы не отмените регистрацию работника службы или не выполните принудительную перезагрузку.

Я не уверен, как сделать эту работу - любая помощь будет принята с благодарностью!

Ответы на вопрос(1)

Ваш ответ на вопрос