chore: Projektgerüst und Werkzeugkette einrichten

Next 16 mit App Router und standalone-Ausgabe, React 19, TypeScript strict,
Tailwind 4, Vitest und Playwright. Alle Versionen exakt gepinnt.

Abweichungen vom ursprünglich notierten Stand, jeweils begründet:
- Prisma 7.10.0 statt 6, weil 6 überholt ist und 8 nur als RC vorliegt.
- TypeScript 6.0.3 statt 7, weil typescript-eslint 8 nur "<6.1.0" trägt.
- ESLint 9.39.5 statt 10, weil das in eslint-config-next gebündelte
  eslint-plugin-react noch context.getFilename() benutzt.
- npm-overrides für SimpleWebAuthn und nodemailer, weil next-auth dort
  ältere optionale Peers deklariert. Die betroffenen next-auth-Provider
  werden nicht benutzt: Passkeys laufen direkt über SimpleWebAuthn 14.

"npm run pruefen" bündelt Prettier, ESLint, tsc, Vitest und ShellCheck.
ShellCheck läuft über das Docker-Abbild, wenn es lokal fehlt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-09-10 12:41:28 +02:00
co-authored by Claude Opus 5
parent 8220adc449
commit de1f923767
18 changed files with 13414 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
import react from '@vitejs/plugin-react'
import { defineConfig } from 'vitest/config'
export default defineConfig({
plugins: [react()],
resolve: {
// Loest den Alias @/ aus der tsconfig.json auf.
tsconfigPaths: true,
},
test: {
// Die Zeitrechnung des Planers gilt in Europe/Berlin. Damit Tests nicht
// von der Zeitzone des Rechners abhaengen, laufen sie in UTC – so faellt
// sofort auf, wenn irgendwo die Ortszeit des Servers durchschlaegt.
env: { TZ: 'UTC' },
coverage: {
provider: 'v8',
reportsDirectory: 'coverage',
include: ['src/lib/**/*.ts'],
exclude: ['**/*.test.ts'],
},
projects: [
{
extends: true,
test: {
name: 'logik',
environment: 'node',
include: ['src/lib/**/*.test.ts', 'src/server/**/*.test.ts'],
},
},
{
extends: true,
test: {
name: 'oberflaeche',
environment: 'jsdom',
include: ['src/components/**/*.test.tsx', 'src/app/**/*.test.tsx'],
setupFiles: ['./test/aufbau-oberflaeche.ts'],
},
},
],
},
})