Мне нужно полностью удалить __WB_REVISION__
строки запроса из URL-адресов, префиксированных рабочей коробкой.
Мой проект выполняется по очень строгим правилам, и бэкэнд будет создавать уникальные записи кэша для каждого запроса с разными строками запроса. Это создает проблему, когда при предварительном кэшировании необходимо добавить строки запроса с информацией о ревизии.
Я уже пытался использовать более простой сервисный работник, но поскольку мы используем веб-пакет с разделенными порциями, мы наткнулись на очень много import()
и window
объектные проблемы, из-за которых работало рабочее окно.
Я уже пробовал выполнять предварительное кэширование вручную через workbox.precaching.precacheAndRoute()
. Буду признателен за любые предложения.
конфигурация рабочей коробки (webpack.config.js):
new WorkboxPlugin.InjectManifest({
swSrc: "./assets/js/pwa/worker.js",
swDest: "sw.js",
precacheManifestFilename: "precache.[manifestHash].js",
excludeChunks: ["main", "page", "login"]
include: [
/(vendor).*\.js(?=\?|$|)/,
/\.(woff2)(?=\?|$|)/,
/(?=sprite)\.(svg)(?=\?|$|)/,
],
})
worker.js:
const cacheableResponse = {
statuses: [0, 200]
};
const offlinePage = "offline.html";
workbox.precaching.precacheAndRoute([offlinePage]);
workbox.routing.registerRoute(/\/$|(.html?)$/, new workbox.strategies.NetworkOnly());
workbox.routing.setCatchHandler(({ event }) => {
return caches.match(offlinePage);
});
workbox.precaching.precacheAndRoute(self.__precacheManifest);
РЕДАКТИРОВАТЬ: Добавление кода нижеконфиг вебпака вроде бы решил, но вроде хаки
manifestTransforms: [
originalManifest => {
return (manifest = originalManifest.forEach(entry => delete entry.revision));
}
]