Behebt: beim ersten Laden erschien der alte App-Shell (`/` als Feed
mit "Failed to fetch"), erst der Reload zeigte die Lese-Liste.
Ursache: registerType 'prompt' liess einen neuen SW warten, sodass
nach jedem Deploy beim ersten Laden noch der veraltete, gecachte
App-Shell durchschlug. Zusätzlich zeigte der PWA-Shortcut "Feed"
noch auf `/`, das inzwischen auf /lese-liste redirectet.
- vite.config.ts: registerType 'autoUpdate' (skipWaiting +
clientsClaim) → neuer SW aktiviert sofort, registerSW lädt selbst neu.
- vite.config.ts: Feed-Shortcut `/` → `/feed`.
- +layout.svelte: registerSW({ immediate: true }); totes
onNeedRefresh-/UpdatePrompt-Wiring entfernt (im autoUpdate-Modus
feuert onNeedRefresh nie).
start_url/id bleiben bewusst `/`, damit bestehende PWA-Installs ihre
Identität behalten.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { sveltekit } from '@sveltejs/kit/vite';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import { defineConfig } from 'vite';
|
|
import { SvelteKitPWA } from '@vite-pwa/sveltekit';
|
|
import { createPWAConfig, themeBridge } from '@mana/shared-pwa';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
tailwindcss(),
|
|
sveltekit(),
|
|
SvelteKitPWA(
|
|
createPWAConfig({
|
|
name: 'Pageta',
|
|
shortName: 'Pageta',
|
|
description: 'Reader-App des Vereins mana e.V. — Feed, Lese-Liste, Recherche.',
|
|
...themeBridge('paper'),
|
|
// autoUpdate statt 'prompt': ein neuer SW aktiviert sofort
|
|
// (skipWaiting + clientsClaim) und die Seite lädt automatisch
|
|
// neu. Sonst schlägt nach jedem Deploy beim ERSTEN Laden noch
|
|
// der alte App-Shell durch (z.B. `/` als Feed statt Redirect
|
|
// auf /lese-liste) und erst der Reload zeigt den neuen Stand.
|
|
registerType: 'autoUpdate',
|
|
shortcuts: [
|
|
// `/` redirectet auf /lese-liste — der Feed lebt unter /feed.
|
|
{ name: 'Feed', short_name: 'Feed', url: '/feed' },
|
|
{ name: 'Lese-Liste', short_name: 'Lesen', url: '/lese-liste' },
|
|
{ name: 'Recherche', short_name: 'Recherche', url: '/recherche' },
|
|
],
|
|
}),
|
|
),
|
|
],
|
|
server: {
|
|
port: Number(process.env.PAGETA_WEB_PORT ?? 3100),
|
|
host: true,
|
|
},
|
|
ssr: {
|
|
noExternal: [/^@mana\//],
|
|
},
|
|
});
|