Удалить service-worker.js (особый случай) - PullRequest
1 голос
/ 04 июля 2019

Под частным случаем я подразумеваю, что мне нужно удалить старого работника сервиса, когда я использовал create-реакции-приложение.Я должен был удалить его при использовании cra, прежде чем переключать весь сайт на gatsby.Я знаю, что с помощью gatsby я могу удалить сервисного работника следующим образом

 //'gatsby-plugin-offline',
'gatsby-plugin-remove-serviceworker'

Но в браузере пользователя они давно посетили мой веб-сайт, когда мой веб-сайт использовал CRA с сервисным работником, установленным на их устройстве.А потом, моя глупость, я не удалил работника службы CRA, пока не переехал в Гэтсби.Итак, сейчас мой сайт использует gatsby, который я настроил для удаления работника сервиса, как показано выше.Но это не удаляет работника службы CRA.На gatsby-browser.js я пробовал этот код, но он не работает.

export const onClientEntry = async () => {
    if ('serviceWorker' in navigator) {

        navigator.serviceWorker.getRegistrations().then(function(registrations) {

        for(let registration of registrations) {
            console.log('Service Worker registration removed: ');
                registration.unregister()

        }}).catch(function(err) {

            console.log('Service Worker registration failed: ', err);

        });
    }
} 

Информация, связанная с данной: Сайт моего CRA раньше размещался на AWS и доставлялся через облачный фронт.Тогда мой сайт, использующий gatbsy, в настоящее время размещается на Netlify, а DNS управляется AWS.Мне нужно разместить сайт на netlify, так как я использую netlify cms.

1 Ответ

1 голос
/ 04 июля 2019

Я нашел решение для этого.Работник службы CRA не будет незарегистрирован, поскольку на моем текущем сайте gatsby нет файла service-worker.js.Поэтому, добавив файл service-worker.js в статическую папку, он будет работать.

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.ready.then(registration => {
      registration.unregister();
    });
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...