# 🚀 MYP Frontend Build System ## Air-Gapped Build System fĂŒr Mercedes-Benz TBA Marienfelde Dieses Build-System ermöglicht die lokale Kompilierung und Optimierung aller Frontend-Assets fĂŒr den **air-gapped Betrieb** (ohne Internetverbindung). --- ## 📋 **Schnellstart** ### **1. Initial Setup (einmalig mit Internet)** ```bash # Im backend-Verzeichnis cd backend # Dependencies installieren npm install ``` ### **2. Build ausfĂŒhren** ```bash # VollstĂ€ndiger Build npm run build # Entwicklungsmodus (Watch) npm run dev ``` ### **3. Air-Gapped Installation** ```bash # FĂŒr Systeme ohne Internet npm run install:air-gapped ``` --- ## đŸ› ïž **VerfĂŒgbare Befehle** | Befehl | Beschreibung | |--------|-------------| | `npm run build` | VollstĂ€ndiger Production-Build | | `npm run build:tailwind` | Nur Tailwind CSS kompilieren | | `npm run build:css` | Alias fĂŒr build:tailwind | | `npm run build:js` | JavaScript minifizieren | | `npm run watch` | Watch-Modus fĂŒr Entwicklung | | `npm run dev` | Entwicklungsmodus starten | | `npm run clean` | Build-Artefakte löschen | | `npm run optimize` | Build + Komprimierung | | `npm run compress` | Assets mit gzip komprimieren | | `npm run analyze` | CSS-Analyse und Debug-Output | --- ## 📁 **Dateistruktur** ``` backend/ ├── package.json # Node.js Dependencies ├── tailwind.config.js # Tailwind CSS Konfiguration ├── postcss.config.js # PostCSS Setup ├── scripts/ │ └── compress-assets.js # Asset-Komprimierung ├── static/ │ ├── css/ │ │ ├── input.css # Tailwind Source │ │ ├── tailwind.min.css # Kompilierte Ausgabe │ │ └── *.css.gz # Komprimierte Versionen │ └── js/ │ ├── *.js # JavaScript Source │ └── *.min.js # Minifizierte Versionen └── templates/ # HTML Templates ``` --- ## 🎹 **Tailwind CSS Konfiguration** ### **Mercedes-Benz Design System** Das Build-System enthĂ€lt vordefinierte Mercedes-Benz Farben und Komponenten: ```css /* VerfĂŒgbare CSS-Klassen */ .btn-mercedes /* Mercedes-Benz Button */ .mercedes-form-input /* Formulareingaben */ .dashboard-card /* Dashboard-Karten */ .glassmorphism /* Glassmorphism-Effekt */ ``` ### **Custom Farben** ```css /* Mercedes-Benz Corporate Colors */ bg-mercedes-black /* #000000 */ bg-mercedes-blue /* #0073ce */ bg-mercedes-silver /* #aaa9ad */ bg-mercedes-gray /* #5e5e5e */ ``` --- ## 🔧 **Air-Gapped Setup** ### **Schritt 1: Online-Vorbereitung** Auf einem System **mit Internet**: ```bash # 1. Repository klonen git clone cd backend # 2. Dependencies installieren npm install # 3. Initialen Build erstellen npm run build # 4. node_modules packen fĂŒr Offline-Transfer tar -czf node_modules_backup.tar.gz node_modules/ ``` ### **Schritt 2: Offline-Installation** Auf dem **air-gapped System**: ```bash # 1. Repository-Dateien ĂŒbertragen # 2. node_modules entpacken tar -xzf node_modules_backup.tar.gz # 3. Lokale Installation versuchen npm run install:air-gapped # 4. Build ausfĂŒhren npm run build ``` --- ## 📊 **Performance-Optimierung** ### **Asset-Komprimierung** ```bash # Komprimiert alle CSS/JS-Dateien mit gzip npm run compress ``` **Ergebnis:** - `tailwind.min.css` (221KB) → `tailwind.min.css.gz` (28KB) - Typische Einsparung: **70-85%** ### **Production-Build** ```bash # FĂŒr Production-Deployment NODE_ENV=production npm run build ``` **Optimierungen:** - CSS Purging (entfernt ungenutzte Klassen) - Minimierung und Komprimierung - Autoprefixer fĂŒr Browser-KompatibilitĂ€t - Critical CSS Extraction --- ## 🚹 **Troubleshooting** ### **Problem: npm install schlĂ€gt fehl** ```bash # Lösung 1: Cache leeren npm cache clean --force # Lösung 2: Offline-Modus verwenden npm install --offline --no-optional # Lösung 3: Registry auf lokal setzen npm config set registry http://localhost:4873 ``` ### **Problem: Tailwind CSS wird nicht kompiliert** ```bash # 1. Input-Datei prĂŒfen ls -la static/css/input.css # 2. Tailwind Config validieren npx tailwindcss --help # 3. Manueller Build npx tailwindcss -i ./static/css/input.css -o ./static/css/tailwind.min.css --minify ``` ### **Problem: Assets werden nicht komprimiert** ```bash # 1. Node.js Version prĂŒfen node --version # Sollte >= 18.0.0 sein # 2. Skript-Berechtigungen setzen chmod +x scripts/compress-assets.js # 3. Manuell ausfĂŒhren node scripts/compress-assets.js ``` --- ## 🔄 **Update-Prozess** ### **1. Dependencies aktualisieren (mit Internet)** ```bash # PrĂŒfe auf Updates npm outdated # Update alle Dependencies npm update # Oder spezifische Pakete npm install tailwindcss@latest ``` ### **2. Tailwind CSS erweitern** **Neue Komponenten hinzufĂŒgen:** ```javascript // tailwind.config.js module.exports = { // ... plugins: [ function({ addComponents }) { addComponents({ '.neue-komponente': { // CSS-Eigenschaften } }) } ] } ``` ### **3. Custom CSS erweitern** ```css /* static/css/input.css */ @tailwind base; @tailwind components; @tailwind utilities; /* Custom Styles */ .meine-klasse { /* Eigene CSS-Regeln */ } ``` --- ## 📈 **Monitoring & Analytics** ### **Build-GrĂ¶ĂŸe ĂŒberwachen** ```bash # CSS-GrĂ¶ĂŸe analysieren npm run analyze # Detaillierte Bundle-Analyse npx bundlesize ``` ### **Performance-Metriken** ```bash # Komprimierungsstatistiken npm run compress # DateigrĂ¶ĂŸe vor/nach ls -lh static/css/tailwind.min.css* ``` --- ## đŸ›Ąïž **Sicherheit** ### **Dependency-Scanning** ```bash # Security-Audit npm audit # Automatische Fixes npm audit fix ``` ### **Air-Gapped Best Practices** 1. **RegelmĂ€ĂŸige Updates** der node_modules auf Online-System 2. **Signatur-Verifizierung** der ĂŒbertragenen Pakete 3. **Isolierte Build-Umgebung** verwenden 4. **Backup** der funktionierenden node_modules --- ## 📞 **Support** ### **HĂ€ufige Fragen** **Q: Kann ich das System ohne Node.js verwenden?** A: Nein, aber die kompilierten Assets funktionieren ohne Node.js. **Q: Wie oft sollte ich das Build-System aktualisieren?** A: Alle 3-6 Monate oder bei kritischen Sicherheitsupdates. **Q: Funktioniert es auf Windows?** A: Ja, vollstĂ€ndig Windows-kompatibel. ### **Technische Spezifikationen** - **Node.js**: ≄18.0.0 - **npm**: ≄9.0.0 - **Tailwind CSS**: 3.4.4 - **PostCSS**: 8.4.38 - **Komprimierung**: gzip Level 9 --- ## 🎯 **NĂ€chste Schritte** 1. ✅ FĂŒhren Sie `npm install` aus 2. ✅ Testen Sie `npm run build` 3. ✅ PrĂŒfen Sie die generierten Assets 4. ✅ Konfigurieren Sie Ihren Webserver fĂŒr `.gz`-Dateien 5. ✅ Implementieren Sie das Build-System in Ihren CI/CD-Pipeline --- **Mercedes-Benz TBA Marienfelde - Frontend Build System v1.0.0**