Угловой работник службы находится в SAFE_MODE - PullRequest
0 голосов
/ 31 января 2019

У меня угловой PWA.Его сервисный работник работал безупречно, пока я не обновил Angular 5.0 до 7.2

. После обновления я вижу следующее error in /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
fulfilled@https://{{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

Screenshot1

  • Я вижу, об этой же проблеме сообщалось здесь.Я не вижу здесь правильного решения.
  • Я попытался выбрать «Обновление при перезагрузке», которое временно решает проблему.После отмены выбора снова появляется та же ошибка.

Screenshot2

В Microsoft edge

  • Удивительно, но после обновления все работает отлично.

Мои мысли и ожидания

  • Поскольку приложение отлично работает в MS edge,Я сомневаюсь, что что-то не так с конфигурацией работника сервиса или с тем, как я запрашиваю обновления
  • Я ожидаю увидеть состояние диска как нормальное в / ngsw / state
...