Some checks are pending
CI / validate (push) Waiting to run
createOfflineFirstPWAConfig — schließt sql-wasm.wasm aus dem Precache
(Wordeck nutzt sql.js für lokales Spaced-Repetition). themeBridge('forest')
#117e39 passend zum data-theme='forest'. 2 Shortcuts (Decks + Entdecken).
OfflineBanner/UpdatePrompt/InstallPrompt unter skip-link. Icons aus
wordeck-native AppIcon-1024.
Build grün.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import { sveltekit } from '@sveltejs/kit/vite';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import { defineConfig } from 'vite';
|
|
import { SvelteKitPWA } from '@vite-pwa/sveltekit';
|
|
import { createOfflineFirstPWAConfig, themeBridge } from '@mana/shared-pwa';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
tailwindcss(),
|
|
sveltekit(),
|
|
SvelteKitPWA(
|
|
// Wordeck nutzt sql.js (WASM) für lokale Spaced-Repetition —
|
|
// createOfflineFirstPWAConfig excludet WASM-Blobs vom Precache,
|
|
// damit sie nicht das 8-MiB-Cache-Cap pro Datei sprengen.
|
|
createOfflineFirstPWAConfig({
|
|
name: 'Wordeck',
|
|
shortName: 'Wordeck',
|
|
description: 'Spaced Repetition, text-first. Lernkarten-App des Vereins mana e.V.',
|
|
...themeBridge('forest'),
|
|
shortcuts: [
|
|
{ name: 'Meine Decks', short_name: 'Decks', url: '/' },
|
|
{ name: 'Entdecken', short_name: 'Entdecken', url: '/explore' },
|
|
],
|
|
})
|
|
),
|
|
],
|
|
server: {
|
|
port: Number(process.env.WORDECK_WEB_PORT ?? 3082),
|
|
host: true,
|
|
},
|
|
// @mana/* aus Verdaccio publishen Raw-.ts (main: src/index.ts).
|
|
// Node 22 verweigert Type-Stripping in node_modules → Vite muss
|
|
// die Pakete im SSR selbst transformieren statt extern an Node
|
|
// weiterzureichen. Plus client-side: optimizeDeps mit esbuild
|
|
// erstickt an .svelte.ts-Files, die `import type {}`/`export type`
|
|
// enthalten — also vom Pre-Bundling ausnehmen, dann übernimmt der
|
|
// reguläre Vite-Transform den TS-Strip.
|
|
ssr: {
|
|
noExternal: [/^@mana\//],
|
|
},
|
|
optimizeDeps: {
|
|
exclude: ['@mana/shared-ui', '@mana/shared-theme', '@mana/shared-icons'],
|
|
},
|
|
});
|