88 lines
3.3 KiB
Bash
88 lines
3.3 KiB
Bash
#!/bin/bash
|
|
|
|
# MYP Platform - Kiosk CSS Build Script
|
|
# Optimiert und minifiziert CSS für maximale Performance im Offline-Kiosk-Modus
|
|
|
|
echo "🚀 Starte Kiosk CSS Build..."
|
|
|
|
# Erstelle Build-Verzeichnis
|
|
mkdir -p static/css/build
|
|
|
|
# Erstelle eine kombinierte CSS-Datei in korrekter Reihenfolge
|
|
echo "📦 Kombiniere CSS-Dateien..."
|
|
|
|
cat > static/css/build/kiosk-combined.css << 'EOF'
|
|
/* MYP Platform - Kiosk Optimierte CSS Bundle */
|
|
/* Generiert am: $(date) */
|
|
|
|
EOF
|
|
|
|
# CSS-Dateien in optimaler Reihenfolge kombinieren
|
|
cat static/css/kiosk-optimized.css >> static/css/build/kiosk-combined.css
|
|
echo "" >> static/css/build/kiosk-combined.css
|
|
cat static/css/icons-minimal.css >> static/css/build/kiosk-combined.css
|
|
|
|
# TailwindCSS mit aggressivem Purging bauen
|
|
echo "🎯 Purge TailwindCSS..."
|
|
npx tailwindcss -i static/css/input.css -o static/css/build/tailwind-purged.css --minify
|
|
|
|
# Kombiniere mit Tailwind
|
|
echo "" >> static/css/build/kiosk-combined.css
|
|
cat static/css/build/tailwind-purged.css >> static/css/build/kiosk-combined.css
|
|
|
|
# CSS minifizieren (falls cssnano verfügbar)
|
|
if command -v npx &> /dev/null; then
|
|
echo "🗜️ Minifiziere CSS..."
|
|
npx cssnano static/css/build/kiosk-combined.css static/css/build/kiosk-production.css --no-map
|
|
else
|
|
echo "⚠️ cssnano nicht verfügbar, verwende unminifizierte Version"
|
|
cp static/css/build/kiosk-combined.css static/css/build/kiosk-production.css
|
|
fi
|
|
|
|
# Erstelle kritisches CSS für Inline-Verwendung
|
|
echo "⚡ Erstelle kritisches CSS..."
|
|
cp static/css/critical-inline.css static/css/build/critical.css
|
|
|
|
# Erstelle eine Version ohne FontAwesome
|
|
echo "🚫 Entferne FontAwesome-Abhängigkeiten..."
|
|
grep -v "fontawesome" static/css/build/kiosk-production.css > static/css/build/kiosk-no-fa.css
|
|
|
|
# Dateigröße-Analyse
|
|
echo ""
|
|
echo "📊 Dateigröße-Analyse:"
|
|
echo "Critical CSS (inline): $(wc -c < static/css/build/critical.css) bytes"
|
|
echo "Kiosk Production CSS: $(wc -c < static/css/build/kiosk-production.css) bytes"
|
|
echo "Ohne FontAwesome: $(wc -c < static/css/build/kiosk-no-fa.css) bytes"
|
|
|
|
# Vergleich mit Original-Dateien
|
|
if [ -f "static/css/tailwind.min.css" ]; then
|
|
original_size=$(wc -c < static/css/tailwind.min.css)
|
|
optimized_size=$(wc -c < static/css/build/kiosk-production.css)
|
|
reduction=$((100 - (optimized_size * 100 / original_size)))
|
|
echo "TailwindCSS Original: $original_size bytes"
|
|
echo "Größenreduktion: $reduction%"
|
|
fi
|
|
|
|
# Cache-Busting Hash generieren
|
|
hash=$(sha256sum static/css/build/kiosk-production.css | cut -d' ' -f1 | cut -c1-8)
|
|
cp static/css/build/kiosk-production.css static/css/build/kiosk-$hash.css
|
|
|
|
echo ""
|
|
echo "✅ Build abgeschlossen!"
|
|
echo ""
|
|
echo "📁 Generierte Dateien:"
|
|
echo " • static/css/build/critical.css (inline verwenden)"
|
|
echo " • static/css/build/kiosk-production.css (Haupt-CSS)"
|
|
echo " • static/css/build/kiosk-$hash.css (mit Cache-Busting)"
|
|
echo ""
|
|
echo "🔧 HTML-Integration:"
|
|
echo ' <style>/* Inhalt von critical.css hier einfügen */</style>'
|
|
echo ' <link rel="stylesheet" href="/static/css/build/kiosk-production.css">'
|
|
echo ""
|
|
echo "💡 Für maximale Performance: Service Worker entfernen und nur statische CSS verwenden"
|
|
|
|
# Cleanup temporärer Dateien
|
|
rm -f static/css/build/kiosk-combined.css
|
|
rm -f static/css/build/tailwind-purged.css
|
|
|
|
echo "🧹 Cleanup abgeschlossen" |