6.8 KiB
6.8 KiB
🚀 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)
# Im backend-Verzeichnis
cd backend
# Dependencies installieren
npm install
2. Build ausführen
# Vollständiger Build
npm run build
# Entwicklungsmodus (Watch)
npm run dev
3. Air-Gapped Installation
# 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:
/* Verfügbare CSS-Klassen */
.btn-mercedes /* Mercedes-Benz Button */
.mercedes-form-input /* Formulareingaben */
.dashboard-card /* Dashboard-Karten */
.glassmorphism /* Glassmorphism-Effekt */
Custom Farben
/* 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:
# 1. Repository klonen
git clone <repository-url>
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:
# 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
# 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
# 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
# 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
# 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
# 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)
# 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:
// tailwind.config.js
module.exports = {
// ...
plugins: [
function({ addComponents }) {
addComponents({
'.neue-komponente': {
// CSS-Eigenschaften
}
})
}
]
}
3. Custom CSS erweitern
/* static/css/input.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Custom Styles */
.meine-klasse {
/* Eigene CSS-Regeln */
}
📈 Monitoring & Analytics
Build-Größe überwachen
# CSS-Größe analysieren
npm run analyze
# Detaillierte Bundle-Analyse
npx bundlesize
Performance-Metriken
# Komprimierungsstatistiken
npm run compress
# Dateigröße vor/nach
ls -lh static/css/tailwind.min.css*
🛡️ Sicherheit
Dependency-Scanning
# Security-Audit
npm audit
# Automatische Fixes
npm audit fix
Air-Gapped Best Practices
- Regelmäßige Updates der node_modules auf Online-System
- Signatur-Verifizierung der übertragenen Pakete
- Isolierte Build-Umgebung verwenden
- 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
- ✅ Führen Sie
npm install
aus - ✅ Testen Sie
npm run build
- ✅ Prüfen Sie die generierten Assets
- ✅ Konfigurieren Sie Ihren Webserver für
.gz
-Dateien - ✅ Implementieren Sie das Build-System in Ihren CI/CD-Pipeline
Mercedes-Benz TBA Marienfelde - Frontend Build System v1.0.0