Files
vu/vite.config.ts
T
will a5dc6502d7
Deploy / deploy (push) Failing after 1m8s
Milestone 0/1: shell, calendar/psalter/hours scaffold, Prime
Client-side-first PWA (Vite/TS, no backend) per the approved plan: day-
navigable shell listing all 8 hours, Prime fully resolves via the
calendar -> psalter -> ordo pipeline, the other 7 hours are registered
but flagged not-implemented. Sanctoral/temporal calendar data uses a
day -> id indirection layer (saints, easter-offsets, fixed-date-calendar)
so reassigning a feast to a different day is a data edit, not a code
change. Docker (Caddy-serving-static) + Gitea CI workflow scaffolded to
match the eec/drip/bookshop operational pattern.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-09 15:20:06 -04:00

44 lines
1.2 KiB
TypeScript

/// <reference types="vitest/config" />
import { defineConfig } from 'vite';
import { VitePWA } from 'vite-plugin-pwa';
import yaml from '@rollup/plugin-yaml';
// Served under reground.org/vu (Caddy path_mount to the vu container) — every
// asset URL and the service worker's registration scope must be scoped to
// this path, or they'll resolve against the domain root instead.
const base = '/vu/';
export default defineConfig({
base,
plugins: [
yaml(),
VitePWA({
registerType: 'autoUpdate',
scope: base,
base,
manifest: {
name: 'vu',
short_name: 'vu',
start_url: base,
scope: base,
display: 'standalone',
background_color: '#f7f3ea',
theme_color: '#7a2e2e',
icons: [
{ src: 'icons/icon-192.png', sizes: '192x192', type: 'image/png' },
{ src: 'icons/icon-512.png', sizes: '512x512', type: 'image/png' },
],
},
workbox: {
// Precache everything the shell needs so a day's office renders
// fully offline once visited once.
globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'],
},
}),
],
test: {
environment: 'jsdom',
globals: false,
},
});