mirror of
https://github.com/jcreek/LivingDexTracker.git
synced 2026-09-16 02:22:17 +00:00
b2b750115f
Every grid cell downloaded the full detail sprite. Generate a smaller /sprites-grid/v1/ set at build time and let the grid ask for those first, falling back through the existing detail URLs when a thumbnail is missing so detail resolution is unchanged. The new prefix is versioned, so it can be cached forever, and the service worker recognises it alongside the other sprite roots. The placeholder is now an empty box rather than a spinner: a thousand spinners cost layout work and announced nothing useful.
70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
import { sveltekit } from '@sveltejs/kit/vite';
|
|
import { defineConfig } from 'vite';
|
|
import { SvelteKitPWA } from '@vite-pwa/sveltekit';
|
|
// you don't need to do this if you're using generateSW strategy in your app
|
|
import { generateSW } from './pwa.mjs';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
sveltekit(),
|
|
SvelteKitPWA({
|
|
srcDir: './src',
|
|
mode: 'development',
|
|
// you don't need to do this if you're using generateSW strategy in your app
|
|
strategies: generateSW ? 'generateSW' : 'injectManifest',
|
|
// you don't need to do this if you're using generateSW strategy in your app
|
|
filename: generateSW ? undefined : 'prompt-sw.ts',
|
|
scope: '/',
|
|
base: '/',
|
|
selfDestroying: process.env.SELF_DESTROYING_SW === 'true',
|
|
pwaAssets: {
|
|
config: true
|
|
},
|
|
manifest: {
|
|
name: 'Living Dex Tracker',
|
|
short_name: 'Living Dex Tracker',
|
|
description:
|
|
'A tool to enable you to track your progress in completing the living Pokédex in Pokémon games.',
|
|
icons: [
|
|
{
|
|
src: '/android-chrome-192x192.png',
|
|
sizes: '192x192',
|
|
type: 'image/png'
|
|
},
|
|
{
|
|
src: '/android-chrome-512x512.png',
|
|
sizes: '512x512',
|
|
type: 'image/png',
|
|
purpose: 'any maskable'
|
|
}
|
|
],
|
|
start_url: '/',
|
|
scope: '/',
|
|
display: 'standalone',
|
|
theme_color: '#f00000',
|
|
background_color: '#f0f0f0'
|
|
},
|
|
injectManifest: {
|
|
globPatterns: ['client/**/*.{html,js,css,ico,png,svg,webp,woff,woff2,webmanifest}'],
|
|
globIgnores: ['**/sprites/**', '**/sprites-small/**', '**/sprites-grid/**']
|
|
},
|
|
workbox: {
|
|
globPatterns: ['client/**/*.{html,js,css,ico,png,svg,webp,woff,woff2,webmanifest}'],
|
|
globIgnores: ['**/sprites/**', '**/sprites-small/**', '**/sprites-grid/**'],
|
|
// Shared message/fetch handling keeps generateSW and injectManifest behavior equal.
|
|
importScripts: ['/offline-worker.js']
|
|
},
|
|
devOptions: {
|
|
enabled: false,
|
|
suppressWarnings: process.env.SUPPRESS_WARNING === 'true',
|
|
type: 'module',
|
|
navigateFallback: '/'
|
|
},
|
|
// if you have shared info in svelte config file put in a separate module and use it also here
|
|
kit: {
|
|
includeVersionFile: true
|
|
}
|
|
})
|
|
]
|
|
});
|