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