Ошибочно добавлен сервисный работник. Убрал его, но как снять его с существующих компьютеров? - PullRequest
1 голос
/ 29 октября 2019

При запуске проекта Angular (6) я использовал шаблон с работником сервиса. Несколько месяцев спустя у меня возникла проблема, заключающаяся в том, что решение было удалить работника службы (путем удаления ServiceWorkerModule.register из моего импорта app.module). Однако на каждом компьютере, который открывал это приложение до этой версии, по-прежнему установлен и работает сервисный работник (по-прежнему вызывающий исходную проблему). Я знаю, что могу вручную удалить один на одном компьютере с помощью dev-tools, но как мне найти решение в коде?

Некоторые вещи, которые я пробовал:

  • https://angular.io/guide/service-worker-devops#fail-safe Это говорит о том, что вы можете удалить свой ngsw.json файл, и работник сервиса "самоуничтожится", но корневая папка нашего исполняемого кода не имеет ngsw.json, только ngsw-config.json. Также говорится, что вы можете переименовать safety-worker.js на имя вашего старого работника службы, но мой развернутый код не имеет safety-worker.js, и при этом я не знаю имя моего работника службы.

1 Ответ

1 голос
/ 29 октября 2019

Вы можете «отменить регистрацию» работника сервиса, используя JavaScript. Вот пример:

if ('serviceWorker' in navigator) {
      navigator.serviceWorker.getRegistrations().then(function (registrations) {
        //returns installed service workers
        if (registrations.length) {
          for(let registration of registrations) {
            registration.unregister();
        }
     }
  });
}
...