Angular 6 CLI не регистрирует сервис-воркеров

Я следовал этому руководству: https://angular.io/guide/service-worker-getting-started

В существующем приложении Angular CLI я запустил

ng add @angular/pwa --project *project-name*

ng build --prod

npm start -c-1 dist/<project-name>

Инструменты разработчика Chrome> Приложение Манифест - обнаружен, ошибок и предупреждений нет Сервисные работники - пусто

Вкладка сети загружает каждый файл с 200

ngsw-config.json - существует, сгенерированный командой assets / icons - каталог сгенерирован app.module.ts - массив импорта содержит ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })

Запуск аудита PWA возвращает ошибку, если ServiceWorker не зарегистрирован.

Я заметил, что выполнение тех же действий на виртуальной машине под управлением Linux действительно сработало, и сервис-воркер был зарегистрирован. Windows, похоже, неправильно регистрирует сервис-воркера

O.MeeKoh 01.10.2018 15:27

Я сделал то же самое, что написано в angular docs, и сервис-воркер не зарегистрирован внутри chrome. Не знаю, как это исправить: /

tzm 16.11.2018 01:36

вы, ребята, нашли решение этой проблемы? У меня начали заканчиваться идеи ...

MrfksIV 05.12.2018 16:44

по мнению некоторых пользователей в github, это связано с тем, что некоторые сторонние библиотеки меняют какое-то состояние приложения, и это нарушает регистрацию сервисного работника

karoluS 15.01.2019 01:20

Есть ли шанс, что вы можете дать ссылку на эти обсуждения?

O.MeeKoh 16.01.2019 17:08
Изучение Angular 1#
Изучение Angular 1#
Здравствуйте, друзья, как дела, надеюсь, у вас все хорошо.
Раскройте весь потенциал вашего проекта Angular с помощью экспертного знания команд Angular CLI
Раскройте весь потенциал вашего проекта Angular с помощью экспертного знания команд Angular CLI
Angular - это популярный JavaScript-фреймворк для создания веб-приложений. Одной из ключевых особенностей Angular является его мощный интерфейс...
3
5
1 377
1

Ответы 1

Я была такая же проблема. Добавление этого в main.ts решило проблему.

platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
if ('serviceWorker' in navigator && environment.production) {
    navigator.serviceWorker.register('ngsw-worker.js');
}
}).catch(err => console.info(err))

Благодарность! Я до сих пор не понимаю, почему ServiceWorkerModule не регистрирует обслуживающего работника, хотя имя функции в точности фейспалм

cmxl 21.01.2020 13:32

Другие вопросы по теме