Change Log
Please refer to the corresponding installation section:
- vite-plugin-pwa
- @vite-pwa/sveltekit
- @vite-pwa/vitepress
- @vite-pwa/astro
- @vite-pwa/nuxt
- @vite-pwa/assets-generator
Rollup 4 and Vite 5
Rollup 4 has changed the asset name layout format, it is using ascii letters (no encoding, including also dash and underscore), previous Rollup versions are using hex encoding:
- Using more characters can make the hash length shorter
- Using a faster hash algorithm can make hashing faster
- This is the PR that changed the hash algorithm: https://github.com/rollup/rollup/pull/5155
This change breaks the way vite-plugin-pwa build plugin builds the service worker, since it is using this regular expression /[.-][a-f0-9]{8}\./ for dontCacheBustURLsMatching in workbox and injectManifest options.
From version v0.17.0, vite-plugin-pwa configures dontCacheBustURLsMatching with a regular expression using the Vite's build.assetsDir option (defaults to assets):
workbox.dontCacheBustURLsMatching = /^assets\//injectManifest.dontCacheBustURLsMatching = /^assets\//
You can refer to this issue for more details about dontCacheBustURLsMatching: Workbox appears to be needlessly generating revision hashes.
@vite-pwa/vitepress
From version v0.3.0, @vite-pwa/vitepress configures dontCacheBustURLsMatching in a similar way to how vite-plugin-pwa does, but using the VitePress' assetsDir option (defaults to assets).
@vite-pwa/nuxt
From version v0.3.3, @vite-pwa/nuxt configures dontCacheBustURLsMatching in a similar way to how vite-plugin-pwa does, but using the Nuxt's app.buildAssetsDir option (defaults to _nuxt).
@vite-pwa/astro
From version v0.2.0, @vite-pwa/astro configures dontCacheBustURLsMatching in a similar way to how vite-plugin-pwa does, but using the Astro's build.assets option (defaults to _astro).
@vite-pwa/sveltekit
From version v0.3.0, @vite-pwa/sveltekit supports SvelteKit 2 (should also support SvelteKit 1).
From version v0.2.9, @vite-pwa/sveltekit configures dontCacheBustURLsMatching in a similar way to how vite-plugin-pwa does, but using the Sveltkit's appDir option (defaults to _app).
WARNING
From version v0.2.0, SvelteKitPWA plugin requires SvelteKit 1.3.1 or above.
If you're using a SvelteKit version prior to v1.3.1, you should use SvelteKitPWA plugin version 0.1.*.
Other integrations
If you're using vite-plugin-pwa or another integration with other meta frameworks (îles), review the generated service worker if you're using Vite 5 or Rollup 4, and update the dontCacheBustURLsMatching regular expression properly when required.