nuxt-community / pwa-module

Zero config PWA solution for Nuxt.js
https://pwa.nuxtjs.org
MIT License
1.24k stars 171 forks source link

Self-hosted Workbox? #509

Open SoftCreatR opened 2 years ago

SoftCreatR commented 2 years ago

I'm relatively new to Nuxt, and stumbled across this module, which works just fine so far.

However, for reasons (GDPR, ...) I would like to self-host Workbox, rather than using a remote CDN.

I found this documentation: https://pwa.nuxtjs.org/workbox#workboxurl

So I've installed the workbox-cdn package. But now, I'm stuck. What I tried was:

  pwa: {
    workbox: {
      workboxURL: `~/node_modules/workbox-cdn/workbox/workbox-sw.js?${Date.now()}`
    },
  },

But that doesn't work (tries to call http://localhost:3000/~/node_modules/workbox-cdn/workbox/workbox-sw.js?1645685080049). Do I need to copy the contents of ~/node_modules/workbox-cdn/workbox to the static directory? Or is there another/more official way?

SoftCreatR commented 2 years ago

Follow up:

I've installed the package recursive-copy-cli and updated the scripts:

"build": "recursive-copy --overwrite ./node_modules/workbox-cdn/workbox ./static/workbox && nuxt build",
"generate": "recursive-copy --overwrite ./node_modules/workbox-cdn/workbox ./static/workbox && nuxt generate",

...

  pwa: {
    workbox: {
      workboxURL: `/workbox/workbox-sw.js?${Date.now()}`,
      config: {
        modulePathPrefix: '/workbox'
      }
    },
  },

This seems to work, but it doesn't feel right.

dreitzner commented 1 year ago

@SoftCreatR thx for this solution.... helped me out tremendously.