Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up
30 lines
1018 B
TypeScript
30 lines
1018 B
TypeScript
import adapter from '@sveltejs/adapter-static';
|
|
import { sveltekit } from '@sveltejs/kit/vite';
|
|
import { defineConfig } from 'vitest/config';
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
sveltekit({
|
|
compilerOptions: {
|
|
// Force runes mode for the project, except for libraries. Can be removed in svelte 6.
|
|
runes: ({ filename }) =>
|
|
filename.split(/[/\\]/).includes('node_modules') ? undefined : true
|
|
},
|
|
// A static build: the duel runs entirely in the browser, so Caddy serves files and nothing else.
|
|
// The fallback is the empty shell Caddy serves for a room address; it is not index.html, so the
|
|
// hall's own prerendered page is not overwritten by it.
|
|
adapter: adapter({ fallback: 'shell.html' })
|
|
})
|
|
],
|
|
server: {
|
|
// In development the duel server runs beside Vite; in production Caddy does this.
|
|
proxy: {
|
|
'/api': 'http://localhost:8788',
|
|
'/ws': { target: 'ws://localhost:8788', ws: true }
|
|
}
|
|
},
|
|
test: {
|
|
include: ['src/**/*.test.ts', 'server/src/**/*.test.ts']
|
|
}
|
|
});
|