diff --git a/src/registerServiceWorker.ts b/src/registerServiceWorker.ts index 8d0d0d14..94d1f474 100644 --- a/src/registerServiceWorker.ts +++ b/src/registerServiceWorker.ts @@ -3,9 +3,12 @@ import { register } from 'register-service-worker' if (process.env.NODE_ENV === 'production') { - register(`${process.env.BASE_URL}service-worker.js`, { - ready(registration) { - registration.update() + register(`${process.env.BASE_URL}sw.js`, { + ready() { + console.log( + 'App is being served from cache by a service worker.\n' + + 'For more details, visit https://goo.gl/AFskqB' + ) }, registered() { console.log('Service worker has been registered.') diff --git a/src/sw.js b/src/sw.js new file mode 100644 index 00000000..fb5580fc --- /dev/null +++ b/src/sw.js @@ -0,0 +1,13 @@ +workbox.core.setCacheNameDetails({ + prefix: 'pptist', +}) + +workbox.skipWaiting() +workbox.clientsClaim() + +workbox.precaching.precacheAndRoute(self.__precacheManifest || []) + +workbox.routing.registerRoute( + new RegExp('.*/.*'), + workbox.strategies.networkFirst() +) \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index ffbacf94..29930b2e 100644 --- a/vue.config.js +++ b/vue.config.js @@ -71,5 +71,9 @@ module.exports = { display: 'standalone', background_color: '#000000', }, + workboxPluginMode: 'InjectManifest', + workboxOptions: { + swSrc: 'src/sw.js', + }, }, } \ No newline at end of file