Вы можете проверить детали здесь.Короче говоря, имейте в виду, что отмена регистрации работника службы выполняется медленно и выполняется в фоновом режиме.Для быстрого прохождения туда и обратно на этапе разработки вам может потребоваться отменить регистрацию и перезагрузить ее вручную.
Проверьте информацию по следующему адресу: https://love2dev.com/blog/how-to-uninstall-a-service-worker/
Оригинальный GIST указывает, что мы должныочистите нашего сервисного работника перед запуском:
self.addEventListener ("активировать", функция (e) {
self.registration.unregister()
.then(function() {
return self.clients.matchAll();
})
.then(function(clients) {
clients.forEach(client => client.navigate(client.url));
});
});
Однако пост предлагаетиспользуя эту расширенную версию:
self.addEventListener("activate", function(e) {
self.registration.unregister()
.then(function() {
return self.clients.matchAll();
})
.then(function(clients) {
clients.forEach(client => {
if (client.url && "navigate" in client){
client.navigate(client.url))
}
});
});
Я бы также позаботился о том, чтобы:
- Убедитесь, что сборка разработки не пробирается в цикле сборки, я видел это там, где думают разработчикичто-то построено в режиме PROD и не является
- Убедитесь, что вы используете HTTPS, используйте NGROK локально.Это кажется обязательным условием для правильной работы PWA / SW.
- Убедитесь, что изменяющиеся файлы получают другой хэш-номер, я видел случаи, когда они не переименовывались, и поэтому вы получаете старый код.
- Включите способ объединения номера версии, пока вы не будете довольны операцией.
Я надеюсь, что некоторые из этих советов помогут вам двигаться в правильном направлении.