Files
lage-chat-control/frontend/svelte.config.js
T

40 lines
1.4 KiB
JavaScript
Raw Normal View History

import adapter from '@sveltejs/adapter-static'
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
/** @type {import('@sveltejs/kit').Config} */
const config = {
preprocess: vitePreprocess(),
kit: {
// Site 100 % prérendu : servi par nginx sur l'infra OKI, mirrorable
// (ADR-001 ; doctrine §4.4 — HTML rendu serveur, un lien marche sans JS).
adapter: adapter({
fallback: '404.html'
}),
// Déployé à la racine de https://chatcontrol.o-k-i.net/ (YunoHost) :
// pas de paths.base. Pour servir sous un sous-chemin, ajouter ici
// paths: { base: '/prefixe' } et adapter les règles du serveur.
// Le script de démarrage SvelteKit est inline (il embarque les données de
// la page) : une CSP `script-src 'self'` posée en en-tête HTTP le bloque
// et tue l'hydratation (recherche et filtres morts — vécu sur o2switch).
// En mode hash, chaque page prérendue porte une <meta> CSP avec l'empreinte
// de SON script inline. L'en-tête serveur ne doit donc plus fixer
// script-src (voir DEPLOYMENT.md §2/§3).
csp: {
mode: 'hash',
directives: {
'script-src': ['self']
}
},
// Un seul bundle JS + une seule feuille CSS au lieu de ~30 chunks :
// moins de requêtes par page (3G, anti-flood o2switch qui répond 429).
output: {
bundleStrategy: 'single'
},
prerender: {
handleHttpError: 'fail'
}
}
}
export default config