Я использую workbox для создания сервис-воркера для проекта React, я не уверен, что не так, но я продолжаю получать сообщение об ошибке в консоли, говорящее Не удается прочитать свойство «CacheFirst» неопределенного.< /эм>сильный>
Маршрут, который я получаю, исходит из серверной части nodejs с базой данных sqlite, данные, которые он возвращает, относятся к дате, указанной в базе данных. Я не уверен, связано ли это с этим или это просто проблема Workbox. После каждого обновления этого файла я выполнял workbox injectManifest, а затем использовал serve -s -p3000 build для обслуживания приложение в браузере.
importScripts(
"https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"
);
if (workbox) {
console.log(`Yay! Workbox is loaded ????`);
} else {
console.log(`Boo! Workbox didn't load ????`);
}
let d = new Date();
let year = d.getFullYear();
let month = d.getMonth() + 1;
let day = d.getDate();
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
let today = `${year}-${month}-${day}`;
workbox.routing.registerRoute(
new RegExp(`http://localhost:5000/routes/${today}`),
new workbox.stategies.CacheFirst()
);
workbox.routing.registerRoute(
/^https:\/\/fonts\.googleapis\.com/,
new workbox.strategies.StaleWhileRevalidate({
cacheName: "google-fonts-stylesheets"
})
);
workbox.routing.registerRoute(
/^https:\/\/fonts\.gstatic\.com/,
new workbox.strategies.CacheFirst({
cacheName: "google-fonts-webfonts",
plugins: [
new workbox.cacheableResponse.Plugin({
statuses: [0, 200]
}),
new workbox.expiration.Plugin({
maxAgeSeconds: 60 * 60 * 24 * 365,
maxEntries: 30
})
]
})
);
workbox.precaching.precacheAndRoute([]);