diff --git a/public/service-worker.js b/public/service-worker.js new file mode 100644 index 000000000..55afd7e21 --- /dev/null +++ b/public/service-worker.js @@ -0,0 +1,20 @@ +// Since we migrated to Vite, the service worker strategy changed, in CRA it was a custom service worker named service-worker.js and in Vite its sw.js handled by vite-plugin-pwa +// Due to this the existing CRA users were not able to migrate to Vite or any new changes post Vite unless browser is hard refreshed +// Hence adding a self destroying worker so all CRA service workers are destroyed and migrated to Vite +// We should remove this code after sometime when we are confident that +// all users have migrated to Vite + +self.addEventListener("install", () => { + self.skipWaiting(); +}); + +self.addEventListener("activate", () => { + self.registration + .unregister() + .then(() => { + return self.clients.matchAll(); + }) + .then((clients) => { + clients.forEach((client) => client.navigate(client.url)); + }); +}); diff --git a/vite.config.ts b/vite.config.ts index 4a4d72e3d..c7a75cd25 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -61,7 +61,7 @@ export default defineConfig({ workbox: { // Don't push fonts and locales to app precache - globIgnores: ["fonts.css", "**/locales/**"], + globIgnores: ["fonts.css", "**/locales/**", "service-worker.js"], runtimeCaching: [ { urlPattern: new RegExp("/.+.(ttf|woff2|otf)"),