Files
immortaly007 a77a515351 Phase 1: scaffold + metronome engine + R1
Svelte 5 + Vite static SPA with absolute base and History-API path routing.
Core lookahead-scheduler metronome (no drift), AudioContext unlock-on-gesture,
synthesized 3-voice clicks, rAF-synced beat highlight. StrumGrid renderer and
R1 wired end-to-end with variants, BPM/variant persistence, query overrides,
and keyboard shortcuts (space, arrow up/down). Dark amp-light theme tokens.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 00:13:44 +02:00

17 lines
537 B
TypeScript

import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'
// Base path is absolute so nested path-routed URLs (e.g. /practice/drill/R3)
// resolve hashed asset URLs correctly. Use '/' for a dedicated domain, or set
// VITE_BASE=/practice/ at build time for a subpath deploy.
// (Relative base './' would break assets on nested routes — do not use it here.)
const base = process.env.VITE_BASE ?? '/'
export default defineConfig({
base,
plugins: [svelte()],
build: {
target: 'es2020',
},
})