40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
import adapter from '@sveltejs/adapter-node';
|
|||
|
|
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Architecture de rendu : « transitional app » en rendu serveur sur
|
||
|
|
* adapter-node, avec prérendu ciblé des seules pages figées.
|
||
|
|
*
|
||
|
|
* Le rendu serveur est le défaut partout : les fiches doivent être fraîches dès
|
||
|
|
* que le pipeline écrit dans SQLite, et les facettes de recherche vivent dans
|
||
|
|
* `url.searchParams`, ce que le prérendu interdit.
|
||
|
|
*
|
||
|
|
* `precompress` génère les variantes .gz et .br au build ; la négociation est
|
||
|
|
* faite par le reverse proxy.
|
||
|
|
*/
|
||
|
|
const config = {
|
||
|
|
preprocess: vitePreprocess(),
|
||
|
|
kit: {
|
||
|
|
adapter: adapter({ precompress: true }),
|
||
|
|
alias: {
|
||
|
|
$composants: 'src/lib/composants',
|
||
|
|
$serveur: 'src/lib/server'
|
||
|
|
},
|
||
|
|
csp: {
|
||
|
|
// Aucune ressource tierce : ni police, ni script, ni image externe.
|
||
|
|
directives: {
|
||
|
|
'default-src': ['self'],
|
||
|
|
'img-src': ['self', 'data:'],
|
||
|
|
'style-src': ['self', 'unsafe-inline'],
|
||
|
|
'font-src': ['self'],
|
||
|
|
'connect-src': ['self'],
|
||
|
|
'frame-ancestors': ['none'],
|
||
|
|
'base-uri': ['self'],
|
||
|
|
'form-action': ['self']
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
export default config;
|