Вот моя конфигурация плагинов webpack:
plugins: [
new MiniCssExtractPlugin(),
new WorkboxPlugin.GenerateSW({
clientsClaim: true,
skipWaiting: true,
maximumFileSizeToCacheInBytes: 40 * 1024 * 1024
})
Здесь я регистрирую работника службы в своем основном файле app.js (точка входа в веб-пакет).
if ('serviceWorker' in navigator) {
// Use the window load event to keep the page load performant
window.addEventListener('load', () => {
navigator.serviceWorker.register('/dist/service-worker.js')
.then((registration => {
console.log('SW registered: ', registration);
}))
.catch(registrationError => {
console.log('SW registration failed: ', registrationError);
});
});
}
Я вижу журнал консоли в своей консоли Chrome, подтверждающий, что сервисный работник зарегистрирован. Я могу проверить в автоматически сгенерированном файле service-worker.js, что исходный код предположительно кэширует мой bundle.js:
workbox.precacheAndRoute([{
"url": "bundle.js",
"revision": "889992e99eeb12acdcd7bc83b2b42279"
}, {
"url": "main.css",
"revision": "b44f8ba70b6644eb8d2cbf732ed6dc09"
}], {});
Я даже вижу, что в моем хранилище кеша кешируются файлы main.css и bundle.js. Однако сервис-воркер работает некорректно. Всякий раз, когда я выхожу из сети, я вижу типичного динозавра без интернета. Любая помощь будет оценена по достоинству.