sw works in production build

This commit is contained in:
Martti Malmi 2023-11-20 14:22:52 +02:00
parent 042e776fed
commit ee30dcd8f3
4 changed files with 201 additions and 6 deletions

View File

@ -49,7 +49,7 @@
},
"scripts": {
"start": "vite",
"build": "vite build",
"build": "yarn eslint --fix && vite build",
"serve": "vite preview",
"test": "jest --runInBand",
"intl-extract": "formatjs extract 'src/**/*.ts*' --ignore='**/*.d.ts' --out-file src/lang.json --flatten true",
@ -126,6 +126,7 @@
"ts-loader": "^9.4.4",
"typescript": "^5.2.2",
"vite": "^5.0.0",
"vite-plugin-pwa": "^0.17.0",
"webpack": "^5.88.2",
"webpack-bundle-analyzer": "^4.8.0",
"webpack-cli": "^5.1.4",

View File

@ -1,14 +1,15 @@
// Import the service worker with Vite's special syntax
import ServiceWorkerURL from "./service-worker?worker&url";
//import ServiceWorkerURL from "./service-worker?worker&url";
export function register() {
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
registerValidSW(ServiceWorkerURL);
//registerValidSW(ServiceWorkerURL);
});
}
}
/*
async function registerValidSW(swUrl: string) {
try {
const registration = await navigator.serviceWorker.register(swUrl,
@ -33,6 +34,8 @@ async function registerValidSW(swUrl: string) {
}
}
*/
export async function unregister() {
if ('serviceWorker' in navigator) {
const registration = await navigator.serviceWorker.ready;

View File

@ -1,10 +1,22 @@
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { VitePWA } from 'vite-plugin-pwa';
import appConfig from "config";
export default defineConfig({
plugins: [react()],
plugins: [
react(),
VitePWA({
strategies: 'injectManifest',
srcDir: 'src',
filename: 'service-worker.ts',
devOptions: {
enabled: true,
type: 'module',
}
})
],
assetsInclude: ['**/*.md'],
resolve: {
alias: {

183
yarn.lock
View File

@ -3475,6 +3475,7 @@ __metadata:
use-sync-external-store: ^1.2.0
uuid: ^9.0.0
vite: ^5.0.0
vite-plugin-pwa: ^0.17.0
webpack: ^5.88.2
webpack-bundle-analyzer: ^4.8.0
webpack-cli: ^5.1.4
@ -7987,7 +7988,7 @@ __metadata:
languageName: node
linkType: hard
"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0":
"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2":
version: 3.3.2
resolution: "fast-glob@npm:3.3.2"
dependencies:
@ -13020,6 +13021,13 @@ __metadata:
languageName: node
linkType: hard
"pretty-bytes@npm:^6.1.1":
version: 6.1.1
resolution: "pretty-bytes@npm:6.1.1"
checksum: 43d29d909d2d88072da2c3d72f8fd0f2d2523c516bfa640aff6e31f596ea1004b6601f4cabc50d14b2cf10e82635ebe5b7d9378f3d5bae1c0067131829421b8a
languageName: node
linkType: hard
"pretty-error@npm:^4.0.0":
version: 4.0.0
resolution: "pretty-error@npm:4.0.0"
@ -15897,6 +15905,23 @@ __metadata:
languageName: node
linkType: hard
"vite-plugin-pwa@npm:^0.17.0":
version: 0.17.0
resolution: "vite-plugin-pwa@npm:0.17.0"
dependencies:
debug: ^4.3.4
fast-glob: ^3.3.2
pretty-bytes: ^6.1.1
workbox-build: ^7.0.0
workbox-window: ^7.0.0
peerDependencies:
vite: ^3.1.0 || ^4.0.0 || ^5.0.0
workbox-build: ^7.0.0
workbox-window: ^7.0.0
checksum: 787444711c30103a3738f3415fd27874fadb5e72ccdbf907b93f27559872f541fffebbdc1474202e21117811582af500d01359b19121605ff976a9cb4fb3d02c
languageName: node
linkType: hard
"vite@npm:^5.0.0":
version: 5.0.0
resolution: "vite@npm:5.0.0"
@ -16366,6 +16391,16 @@ __metadata:
languageName: node
linkType: hard
"workbox-background-sync@npm:7.0.0":
version: 7.0.0
resolution: "workbox-background-sync@npm:7.0.0"
dependencies:
idb: ^7.0.1
workbox-core: 7.0.0
checksum: 79b64416563761d36b91342d6ce2618d1c984bebcd511ce56b80098127e42c676d4831dd566a0a80a6bb52a618ad815b277ce6b310e4a5c5043e7394829d30c6
languageName: node
linkType: hard
"workbox-broadcast-update@npm:6.6.0":
version: 6.6.0
resolution: "workbox-broadcast-update@npm:6.6.0"
@ -16375,6 +16410,15 @@ __metadata:
languageName: node
linkType: hard
"workbox-broadcast-update@npm:7.0.0":
version: 7.0.0
resolution: "workbox-broadcast-update@npm:7.0.0"
dependencies:
workbox-core: 7.0.0
checksum: eee5c09fd78b3439348c7c92013f63700f14004d46161f19b0daf0d01303c6785f0953b746258cfb2627932108631370c8fa52ec5b526177cd528ae02530370e
languageName: node
linkType: hard
"workbox-build@npm:6.6.0":
version: 6.6.0
resolution: "workbox-build@npm:6.6.0"
@ -16420,6 +16464,51 @@ __metadata:
languageName: node
linkType: hard
"workbox-build@npm:^7.0.0":
version: 7.0.0
resolution: "workbox-build@npm:7.0.0"
dependencies:
"@apideck/better-ajv-errors": ^0.3.1
"@babel/core": ^7.11.1
"@babel/preset-env": ^7.11.0
"@babel/runtime": ^7.11.2
"@rollup/plugin-babel": ^5.2.0
"@rollup/plugin-node-resolve": ^11.2.1
"@rollup/plugin-replace": ^2.4.1
"@surma/rollup-plugin-off-main-thread": ^2.2.3
ajv: ^8.6.0
common-tags: ^1.8.0
fast-json-stable-stringify: ^2.1.0
fs-extra: ^9.0.1
glob: ^7.1.6
lodash: ^4.17.20
pretty-bytes: ^5.3.0
rollup: ^2.43.1
rollup-plugin-terser: ^7.0.0
source-map: ^0.8.0-beta.0
stringify-object: ^3.3.0
strip-comments: ^2.0.1
tempy: ^0.6.0
upath: ^1.2.0
workbox-background-sync: 7.0.0
workbox-broadcast-update: 7.0.0
workbox-cacheable-response: 7.0.0
workbox-core: 7.0.0
workbox-expiration: 7.0.0
workbox-google-analytics: 7.0.0
workbox-navigation-preload: 7.0.0
workbox-precaching: 7.0.0
workbox-range-requests: 7.0.0
workbox-recipes: 7.0.0
workbox-routing: 7.0.0
workbox-strategies: 7.0.0
workbox-streams: 7.0.0
workbox-sw: 7.0.0
workbox-window: 7.0.0
checksum: f230463833a8b6d1beadbfb4db5526d1b6b047ffa23abcd2afdc306510e1f3f942a74d1c59c76ee371a326bb2fe616ced05d0c53aefee5902c68a3f31faa27dc
languageName: node
linkType: hard
"workbox-cacheable-response@npm:6.6.0":
version: 6.6.0
resolution: "workbox-cacheable-response@npm:6.6.0"
@ -16429,6 +16518,15 @@ __metadata:
languageName: node
linkType: hard
"workbox-cacheable-response@npm:7.0.0":
version: 7.0.0
resolution: "workbox-cacheable-response@npm:7.0.0"
dependencies:
workbox-core: 7.0.0
checksum: c9d834b25564ee01dd4df17b1f27e61160a3b610f40c0e297a9973712878fe617e168e3b1541c7b70b0de3828cb4b62de3088424b4a2872ed5a106e7e777772f
languageName: node
linkType: hard
"workbox-core@npm:6.6.0, workbox-core@npm:^6.4.2":
version: 6.6.0
resolution: "workbox-core@npm:6.6.0"
@ -16453,6 +16551,16 @@ __metadata:
languageName: node
linkType: hard
"workbox-expiration@npm:7.0.0":
version: 7.0.0
resolution: "workbox-expiration@npm:7.0.0"
dependencies:
idb: ^7.0.1
workbox-core: 7.0.0
checksum: 3d7cce573111bfb32f35d97ea95d5016ac42bdc0f3ab5096e5c0fd799dd466ccc3cbfdbdeab4e7158923ae3e406f2002add01e5c9369f9c3e2623e41bc04b324
languageName: node
linkType: hard
"workbox-google-analytics@npm:6.6.0":
version: 6.6.0
resolution: "workbox-google-analytics@npm:6.6.0"
@ -16465,6 +16573,18 @@ __metadata:
languageName: node
linkType: hard
"workbox-google-analytics@npm:7.0.0":
version: 7.0.0
resolution: "workbox-google-analytics@npm:7.0.0"
dependencies:
workbox-background-sync: 7.0.0
workbox-core: 7.0.0
workbox-routing: 7.0.0
workbox-strategies: 7.0.0
checksum: defb12c3f4cf924aef8c647724c32d1100042447aed20128702815eba0f6d55ba6dde6557036dc13d68c0ab0570188757136bd453823fe25f2fa541cb18b8e0c
languageName: node
linkType: hard
"workbox-navigation-preload@npm:6.6.0":
version: 6.6.0
resolution: "workbox-navigation-preload@npm:6.6.0"
@ -16474,6 +16594,15 @@ __metadata:
languageName: node
linkType: hard
"workbox-navigation-preload@npm:7.0.0":
version: 7.0.0
resolution: "workbox-navigation-preload@npm:7.0.0"
dependencies:
workbox-core: 7.0.0
checksum: 329018003ce44812d37f1e168960abe34c7ac4b8cd1c8f86da172e73919fb51ba94a63db3b4024614066bf1ea38e1a89839eafd46eed9a13015dd4cf6fcd056c
languageName: node
linkType: hard
"workbox-precaching@npm:6.6.0":
version: 6.6.0
resolution: "workbox-precaching@npm:6.6.0"
@ -16485,7 +16614,7 @@ __metadata:
languageName: node
linkType: hard
"workbox-precaching@npm:^7.0.0":
"workbox-precaching@npm:7.0.0, workbox-precaching@npm:^7.0.0":
version: 7.0.0
resolution: "workbox-precaching@npm:7.0.0"
dependencies:
@ -16505,6 +16634,15 @@ __metadata:
languageName: node
linkType: hard
"workbox-range-requests@npm:7.0.0":
version: 7.0.0
resolution: "workbox-range-requests@npm:7.0.0"
dependencies:
workbox-core: 7.0.0
checksum: 04f6d7921a8a4a024b0bf0049a592ebedcdd285a52d1b8714e0a53efc936339dac39c3a5b5b6db9a3356b9f3ed1876024403260ec426cf9dc65e3b7ba5464914
languageName: node
linkType: hard
"workbox-recipes@npm:6.6.0":
version: 6.6.0
resolution: "workbox-recipes@npm:6.6.0"
@ -16519,6 +16657,20 @@ __metadata:
languageName: node
linkType: hard
"workbox-recipes@npm:7.0.0":
version: 7.0.0
resolution: "workbox-recipes@npm:7.0.0"
dependencies:
workbox-cacheable-response: 7.0.0
workbox-core: 7.0.0
workbox-expiration: 7.0.0
workbox-precaching: 7.0.0
workbox-routing: 7.0.0
workbox-strategies: 7.0.0
checksum: 253d50a315855917ca6683d6a3e910ac3c6f8915a8bcc80a7f15f277db7f48dc288c0ec2d9cdc64390bdd50446e66910246f384ce19f46688db97c715b323123
languageName: node
linkType: hard
"workbox-routing@npm:6.6.0, workbox-routing@npm:^6.4.2":
version: 6.6.0
resolution: "workbox-routing@npm:6.6.0"
@ -16565,6 +16717,16 @@ __metadata:
languageName: node
linkType: hard
"workbox-streams@npm:7.0.0":
version: 7.0.0
resolution: "workbox-streams@npm:7.0.0"
dependencies:
workbox-core: 7.0.0
workbox-routing: 7.0.0
checksum: e2975eb773bcf765c9cc8166936a9a2aaec2609fcddc178cbf6b2da54a113c4e2e62cbd257104861ea21b80c2a051936d62249f06d2414072405147f5181c0ef
languageName: node
linkType: hard
"workbox-sw@npm:6.6.0":
version: 6.6.0
resolution: "workbox-sw@npm:6.6.0"
@ -16572,6 +16734,13 @@ __metadata:
languageName: node
linkType: hard
"workbox-sw@npm:7.0.0":
version: 7.0.0
resolution: "workbox-sw@npm:7.0.0"
checksum: f2673bc3f73ef5a54349eb7c4c63aefb7dfe6b6492947851ffa44079efdbfff07a26e68a0f7ea3801e03ab3fdc29acdc36cd315b9fbdb8a60963c7cb95f2de43
languageName: node
linkType: hard
"workbox-webpack-plugin@npm:^6.5.4":
version: 6.6.0
resolution: "workbox-webpack-plugin@npm:6.6.0"
@ -16597,6 +16766,16 @@ __metadata:
languageName: node
linkType: hard
"workbox-window@npm:7.0.0, workbox-window@npm:^7.0.0":
version: 7.0.0
resolution: "workbox-window@npm:7.0.0"
dependencies:
"@types/trusted-types": ^2.0.2
workbox-core: 7.0.0
checksum: 486ceaf2c04953cd73fe04760929a9c42818b57fffbbaca3fc9065cfd6bf3f5a571d2ea78db177e548a98041c8752faa360dda8eaf0f10b8638ef3eb1b696b13
languageName: node
linkType: hard
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
version: 7.0.0
resolution: "wrap-ansi@npm:7.0.0"