У меня есть угловая PWA. Его сервисный работник работал безупречно, пока я не обновил Angular 5.0 до 7.2
После обновления я вижу следующую ошибку в /ngsw/state
Driver state: SAFE_MODE (Initialization failed due to error: Invariant violated (initialize): latest hash null has no known
manifest initialize/<@https://{{domain}}.com/ngsw-worker.js:2227:27
[email protected]://{{domain}}.com/ngsw-worker.js:1772:52 ) Latest
manifest hash: none Last update check: never
Фон приложения
- Угловая версия - 7.2.0
- Версия рабочего сервиса - 7.2.0
- Я проверяю обновления вручную, используя сервис SwUpdate.
Код для проверки обновлений
if (this.updates.isEnabled) {
const appIsStable$ = this.appRef.isStable.pipe(first(isStable => isStable === true));
const every21600Ms$ = interval(6 * 60 * 60);
const every21600MsOnceAppIsStable$ = concat(appIsStable$, every21600Ms$);
// poll the service worker to check for updates
every21600MsOnceAppIsStable$.subscribe(() =>
this.updates.checkForUpdate()
);
}
Мои шаги по исследованию и устранению неисправностей на данный момент:
В Chrome
- Работник сервиса зарегистрирован без ошибок
- Я заглянул во вкладку сети и обнаружил, что сервисный работник никогда не скачивает ngsw.json. Я видел загрузку ngsw.json, когда приложение было в Angular 5.0
- Я вижу, что та же проблема была зарегистрирована здесь. Я не вижу здесь правильного решения.
- Я попытался выбрать "Обновить при перезагрузке", который временно устраняет проблему. Та же ошибка появляется снова после того, как я отменил выбор.
В крае Microsoft
- Удивительно, но после апгрейда все работает отлично.
Мои мысли и ожидания
- Поскольку приложение отлично работает в MS edge, я сомневаюсь, что что-то не так с конфигурацией работника службы или с тем, как я запрашиваю обновления
- Я ожидаю увидеть состояние диска как нормальное в /ngsw/state