Текущее поведение:
Служебный работник не регистрируется из-за ошибки, указанной ниже
Ожидаемое поведение:
Регистр работника службы
Подробности
Опубликовано как проблема github: https://github.com/facebook/create-react-app/issues/8593
Работник службы выдает следующую ошибку при попытке зарегистрироваться:
Ошибка при регистрации работника службы:
Исключение DOME: не удалось зарегистрировать ServiceWorker для области ('http://localhost: 3000 / ') с помощью сценария ('http://localhost: 3000 / sw. js '):
Сценарий имеет неподдерживаемый тип MIME (' text / html '). приставка. @ index. js: 1
sw.js
отображается на вкладке источников инструментов Chrome dev, но не регистрируется.
Версия React: 16.12.0
Сообщение об ошибке:
Ошибка при регистрации сервисного работника: DOMException:
Не удалось зарегистрировать ServiceWorker для области ('http://localhost: 3000 / ') со сценарием (' http://localhost: 3000 / sw. js '):
Сценарий имеет неподдерживаемый тип MIME (' text / html ').
Сбой ServiceWorker на вкладке проверки Chrome:
Шаги для воспроизведения:
Регистрация работника службы в действии (перейдите от отмены регистрации к регистрации или поместите код ПО непосредственно в индекс. html, или используйте более простое ПО. Все это приводит к одной и той же ошибке при запуске в приложении dev или сборке реагирования.)
SW Пример:
export function register() {
if ("serviceWorker" in navigator) {
navigator.serviceWorker
.register("./sw.js")
.then(function(registration) {
// Successful registration
console.log(
"Hooray. Registration successful, scope is:",
registration.scope
);
})
.catch(function(error) {
// Failed registration, service worker won’t be installed
console.log(
"Whoops. Service worker registration failed, error:",
error
);
});
}
}
Кроме того, `http://localhost: 3000 / sw. js при использовании ПО по умолчанию от React возвращает это HTML:
Предлагаемые исправления:
Переместить sw.js
в папку publi c, выдает эту ошибку:
Есть ли способ изменить заголовок (с text/html
на application/javascript
) специально для sw.js
при подаче в браузер в React?
Я попытался следовать некоторым статьям Medium по регистрации пользовательских сервисов в React, чтобы выгода ...