# Build und Package in einem Schritt
npm run deployErstellt automatisch: releases/ct-dashboard-v{version}-{git-hash}.zip
# 1. Build erstellen
npm run build
# 2. Package erstellen
node scripts/package.js- Admin-Bereich → Einstellungen → Erweiterungen
- "Erweiterung hochladen" klicken
- ZIP-Datei aus
releases/Verzeichnis auswählen - "Installieren" und "Aktivieren"
Nach der Installation verfügbar unter:
https://ihre-domain.church.tools/ccm/ctdashboard/
vite.config.ts:
export default defineConfig({
base: "/ccm/ctdashboard/",
build: {
outDir: "dist",
sourcemap: false,
minify: "terser",
},
})ct-dashboard-v1.0.0-abc123.zip
├── index.html
└── assets/
├── index-[hash].js
├── index-[hash].css
└── vendor-[hash].js
Build-Fehler:
# Dependencies neu installieren
rm -rf node_modules package-lock.json
npm installUpload-Fehler:
- ZIP-Datei unter 10MB halten
- Nur
dist/Inhalt ohne Source Maps
Berechtigungen:
- ChurchTools-Admin-Rechte erforderlich
- API-Zugriff automatisch über Session
<!-- Automatisch von ChurchTools gesetzt -->
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self' 'unsafe-inline';"
/>// Globaler Error Handler
window.addEventListener("error", (event) => {
console.error("Global Error:", {
message: event.message,
filename: event.filename,
lineno: event.lineno,
colno: event.colno,
error: event.error,
})
})
// Vue Error Handler
app.config.errorHandler = (err, vm, info) => {
console.error("Vue Error:", {
error: err,
component: vm?.$options.name,
info: info,
})
}// Performance-Metriken sammeln
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log("Performance:", {
name: entry.name,
duration: entry.duration,
startTime: entry.startTime,
})
}
})
observer.observe({ entryTypes: ["navigation", "resource"] })// Einfacher Health Check
export async function healthCheck(): Promise<boolean> {
try {
await churchtoolsClient.get("/whoami")
return true
} catch (error) {
console.error("Health check failed:", error)
return false
}
}# Version in package.json erhöhen
npm version patch # oder minor/major
# Changelog aktualisieren
echo "## v1.2.1\n- Bugfix: ..." >> CHANGELOG.md# Build erstellen
npm run build
# Package erstellen
npm run deploy- Neue ZIP-Datei hochladen
- "Update" statt "Installieren" wählen
- Update bestätigen
- Cache leeren (falls erforderlich)
- Vorherige Version aus
releases/verwenden - Downgrade über ChurchTools-Interface
- Oder: Erweiterung deaktivieren/reaktivieren
# Unit Tests
npm run test
# E2E Tests
npm run test:e2e
# Linting
npm run lint
# Type Checking
npm run type-check# Build erstellen
npm run build
# Build lokal testen
npm run preview# Package erstellen
npm run deploy
# ZIP-Inhalt prüfen
unzip -l releases/ct-dashboard-v1.2.0-*.zip- Alle Tests bestanden
- Code-Review abgeschlossen
- Version in package.json aktualisiert
- Changelog aktualisiert
- Git-Tag erstellt
-
npm installerfolgreich -
npm run builderfolgreich -
npm run deployerfolgreich - ZIP-Datei erstellt
- Als Administrator angemeldet
- ZIP-Datei hochgeladen
- Installation erfolgreich
- Erweiterung aktiviert
- Funktionalität getestet
- Dashboard erreichbar
- Alle Module funktionsfähig
- API-Verbindungen funktionieren
- Keine JavaScript-Fehler
- Performance akzeptabel
# Node Modules neu installieren
rm -rf node_modules package-lock.json
npm install
# Cache leeren
npm run clean- Datei zu groß: Build optimieren, Source Maps entfernen
- Ungültiges Format: ZIP-Struktur prüfen
- Berechtigungen: Admin-Rechte prüfen
// Browser-Konsole prüfen
console.log("ChurchTools Client:", churchtoolsClient)
console.log("Environment:", import.meta.env)// Verbindung testen
try {
const response = await churchtoolsClient.get("/whoami")
console.log("API Connection OK:", response)
} catch (error) {
console.error("API Connection Failed:", error)
}// In main.ts
if (import.meta.env.DEV) {
window.DEBUG = true
console.log("Debug mode enabled")
}# Browser-Konsole
# Netzwerk-Tab
# ChurchTools-Logs (falls verfügbar)- GitHub Issues: Für Bugs und Feature-Requests
- ChurchTools Forum: Für allgemeine Fragen
- E-Mail: Für kritische Probleme
Hinweis: Diese Dokumentation bezieht sich auf ChurchTools Version 3.x. Für ältere Versionen können Anpassungen erforderlich sein.