feat: Add service worker for asset caching

- Add Workbox-based service worker to cache JS, CSS, and fonts
- JS/CSS cached for 30 days, fonts for 1 year
- Support for CDN assets via ASSET_CDN_HOST
- Version-based cache invalidation on deployments
- Automatic cache cleanup for old versions
- Build service worker during asset precompilation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Pranav
2026-01-10 14:48:23 -08:00
co-authored by Claude Opus 4.5
parent 8b230c6920
commit d34df7c314
9 changed files with 386 additions and 2 deletions
+6 -1
View File
@@ -13,6 +13,7 @@
"dev": "overmind start -f ./Procfile.dev",
"ruby:prettier": "bundle exec rubocop -a",
"build:sdk": "BUILD_MODE=library vite build",
"build:sw": "node scripts/build-service-worker.js",
"prepare": "husky install",
"size": "size-limit",
"story:dev": "histoire dev",
@@ -108,7 +109,11 @@
"vuedraggable": "^4.1.0",
"vuex": "~4.1.0",
"vuex-router-sync": "6.0.0-rc.1",
"wavesurfer.js": "7.8.6"
"wavesurfer.js": "7.8.6",
"workbox-cacheable-response": "^7.0.0",
"workbox-expiration": "^7.0.0",
"workbox-routing": "^7.0.0",
"workbox-strategies": "^7.0.0"
},
"devDependencies": {
"@egoist/tailwindcss-icons": "^1.8.1",