Служебный работник с приложением create response js chunks загружен неправильно - PullRequest
0 голосов
/ 03 июля 2018

Я использую приложение «Реакция приложения» и работник сервиса. Однако иногда, когда я собираю новую версию, некоторые js-чанки все еще загружались из сервисного работника, чего они не должны делать? И вместо загрузки файла JS, он на самом деле загружает HTML. После очистки кеша и перезагрузки страницы все работает нормально.

  1. Я не кэшировал работника сервиса на Nginx. Каждый раз, когда я обновляю страницу, файл сервисного работника загружался с сервера.

  2. Я использую реактивную нагрузку

Как мне решить эту проблему? Любая помощь будет оценена.

1 Ответ

0 голосов
/ 31 июля 2018

Как вы упомянули react-loadable, я предполагаю, что вы используете загрузку асинхронных компонентов в своем приложении. Если это правда, вы, вероятно, столкнулись с той же проблемой, что и я.

Каждый раз, когда новая сборка поставляется, новый сервисный работник собирается быть установленным. По умолчанию он не будет активирован до завершения сеанса (все вкладки / браузер закрываются). Чтобы активировать его сразу, используется параметр skipWaiting, который устанавливается в sw-precache-webpack-plugin из create-react-app webpack config. Поэтому теперь старый сервисный работник и все связанные с ним кэшированные файлы будут удалены, поскольку новый сервисный работник берет на себя ответственность. Это нормально в большинстве случаев, но не когда мы имеем дело с загрузкой асинхронных компонентов. В этом случае мы не хотим, чтобы старые куски удалялись, поскольку наше приложение ссылается на них. Для этого нам нужно установить skipWaiting: false в sw-precache-webpack-plugin.

Дополнительную информацию можно найти в этой теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...