React и Serviceworker (Workbox)

Im trying to figure out how I can combine my react app with workbox as my serviceworker. No matter what Im делаю, я всегда получаю одну и ту же ошибку при попытке зарегистрировать своего обслуживающего работника.

Неперехваченное (в обещании) исключение DOMException: не удалось зарегистрировать ServiceWorker: сценарий имеет неподдерживаемый тип MIME ('text / html').

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

Мой фрагмент кода в моем index.js

if( 'serviceWorker' in navigator ) {
   console.log("Supported!")
   navigator.serviceWorker
                   .register( 'sw.js' , { scope : ' ' } )
                   .then( function( ) {
                       console.log('Congratulations!!Service Worker Registered');
                   })
                   .catch( function() {
                       console.log(`Aagh! Some kind of Error :- `);
                   });
} else {
console.log("Not supported")
}

В моем sw.js нет ничего, кроме простого console.log


person Max Günther    schedule 24.05.2018    source источник
comment
я забыл сказать вам, что приложение было создано с помощью create-response-app   -  person Max Günther    schedule 24.05.2018
comment
Я предлагаю вам прочитать этот материал: Использование Рабочая панель с приложением Create React (без извлечения)   -  person Kevin Hernández    schedule 07.08.2018
comment
Посмотрите это, и вы поймете, почему вы не можете делать то, что пытаетесь сделать. Это не сработает. youtube.com/watch?v=Ok2r1M1jM_M и, возможно, также ознакомьтесь с этим вопросом .. . stackoverflow.com/questions/56252946/   -  person MegPhillips91    schedule 21.07.2020


Ответы (1)


Пара вещей, которые нужно проверить: 1) приложение create-response-app создало приложение PWA прямо из коробки (с файлами SW и manifest.json). Убедитесь, что вы не конфликтуете с файлами, созданными этим. Я бы рекомендовал использовать то, что идет из коробки, если у вас нет явной причины использовать Workbox, который должен работать с любым фреймворком / без фреймворка, попробуйте то, что идет изначально.

2) Убедитесь, что вы запускаете свое приложение на сервере, который поддерживает HTTPS (с сертификатом) и сервис-воркер.

person Anand    schedule 24.05.2018
comment
Ваш первый пункт абсолютно верен. Наконец-то мне удалось зарегистрировать моего обслуживающего работника со следующим пакетом. npmjs.com/package/react-app-rewire-workbox - person Max Günther; 24.05.2018