#workbox
#workbox
Вопрос:
Я использую workbox-webpack-plugin (5.1.4) для создания сервисного работника.
В wepback я добавил GenerateSW в плагины со следующей конфигурацией
{
swDest: 'serviceWorker.js',
clientsClaim: true,
skipWaiting: true,
mode: process.env.NODE_ENV,
sourcemap: false,
cleanupOutdatedCaches: true,
runtimeCaching: [{
urlPattern: ///,
handler: 'NetworkFirst',
}, {
urlPattern: /.(?:js|css|html|map)$/,
handler: 'StaleWhileRevalidate',
}, {
urlPattern: /.(?:png|jpg|jpeg|mp4|svg|ico)$/,
handler: 'CacheOnly',
}, {
urlPattern: /^https://xx(?:-dev|).xx.xx/media-service/(?:page1|page2|page3)(.*)/,
handler: 'NetworkFirst',
}],
}
Это работает хорошо.
Но когда я добавил maximumFileSizeToCacheInBytes: 20 * 1024 * 1024 для настройки была выдана следующая ошибка:
Чего мне не хватает?
Комментарии:
1. Какое сообщение об ошибке регистрируется в консоли браузера, когда это происходит?
2. Только одна ошибка из SW.js : «Не пойманный (в обещании) Ошибка типа: не удалось выполнить выборку»
Ответ №1:
Это звучит так, как будто изменение maximumFileSizeToCacheInBytes
означает, что в ваш манифест предварительного кэша добавляется дополнительный (большой) файл, а затем попытка загрузить этот файл завершается неудачей.
Если не удается загрузить что-либо, указанное в вашем манифесте предварительного кэширования, установка service worker завершится неудачно, и при следующей регистрации service worker будет предпринята повторная попытка.
Вы можете увидеть запись на сетевой панели в DevTools Chrome, соответствующую неудачной загрузке, если вам нужно отладить, какой URL-адрес не работает. Но, исходя из того, что вы описываете, скорее всего, это будет URL-адрес любого большого файла, разрешенного через maximumFileSizeToCacheInBytes
.
Основная причина неудачной загрузки, вероятно, не связана с Workbox и связана с проблемой обработки вашим веб-сервером запроса на этот URL.