“Nova versão disponível” com service worker e sw-precache

Estou tentando usarsw-precache, mas devo estar fazendo algo errado!

Estou principalmente usando o código de demonstração disponível norepositório github e não consigo receber atualizações do aplicativo. Depois de armazenado em cache pela primeira vez, ele nunca verifica novas versões.

Eu esperava que, ao publicar um novo trabalhador de serviço, o navegador solicitasse o novo trabalhador de serviço e atualizasse o cache adequadamente em segundo plano. Então, usando ocódigo de registro no exemplo, Eu poderia solicitar ao usuário que atualize e obtenha a versão mais recente do cache recém-atualizado.

Realmente apreciaria se alguém pudesse me indicar a direção certa.

Exemplo

Para demonstrar o problema, criei um exemplo isolado aqui:https://github.com/stevenocchipinti/sw-precache-demo

O exemplo usa um esqueleto básico decreate-react-app que tem uma tarefa de compilação integrada que cuida da impressão digital dos nomes de arquivos etc.

Eu suspeito que o problema está comigo armazenando tudo em cache usando o seguintesw-precache config:

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

Existem etapas mais precisas no leia-me do repositório, mas as etapas básicas que estou tomando para reproduzir o problema são as seguintes (com minhas expectativas provavelmente incorretas).

Etapas e premissas

Navegue até o aplicativo pela primeira vez
Eu deveria verContent is now available offline! no console

Recarregue a página
A mensagem no console não deve aparecer novamente porque o responsável pelo serviço está instalado, mas a página ainda deve funcionar.

Fique offline e recarregue a página
A página ainda deve funcionar

Faça uma alteração visível no código fonte

Reconstruir (execute a tarefa de compilação esw-precache)

É aqui que meu entendimento deve estar errado

Recarregue a página

O responsável pelo serviço deve atualizar o cache em segundo planoQuando terminar, você deverá verNew or updated content is available. no consoleAs alterações visíveis reais não devem ser visíveis até a próxima recarga

Recarregue a página novamente

O navegador usará o novo cache desta vezAs alterações devem estar visíveis agora!Não deve haver nenhuma mensagem no consoleO problema

Depois que o aplicativo tiver sido armazenado em cache inicialmente, ele nunca será atualizado, a menos que você cancele o registro do técnico de serviço ou force uma recarga.

Não tenho certeza de como fazer isso funcionar - qualquer ajuda seria muito apreciada!

questionAnswers(1)

yourAnswerToTheQuestion