From 010e89212fa4c778281e85fcb73b8654edf8a3ca Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Thu, 8 Jan 2026 09:14:17 +0100 Subject: [PATCH] Improve deployment script with enhanced build validation and error handling Update deploy-production.sh to include checks for missing dependencies, capture build output, and validate the presence of critical files and directories. This enhancement aims to provide clearer feedback during the build process and ensure a more robust deployment experience. --- deploy-production.sh | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/deploy-production.sh b/deploy-production.sh index e617d90..a191235 100755 --- a/deploy-production.sh +++ b/deploy-production.sh @@ -176,14 +176,34 @@ echo "5. Building application..." echo " Running: npm run build" echo " (This may take a few minutes...)" -# Build mit expliziter Fehlerbehandlung -if ! npm run build; then +# Clean-Build: Stelle sicher, dass node_modules aktuell ist +echo " Checking dependencies..." +if [ ! -f "node_modules/.package-lock.json" ] && [ ! -f "package-lock.json" ]; then + echo " WARNING: package-lock.json fehlt. Führe npm install aus..." + npm install +fi + +# Build mit expliziter Fehlerbehandlung und Output-Capture +BUILD_OUTPUT=$(npm run build 2>&1) +BUILD_EXIT_CODE=$? + +# Zeige Build-Output +echo "$BUILD_OUTPUT" + +if [ "$BUILD_EXIT_CODE" -ne 0 ]; then echo "" - echo "ERROR: Build fehlgeschlagen mit Exit-Code $?" + echo "ERROR: Build fehlgeschlagen mit Exit-Code $BUILD_EXIT_CODE" echo "Bitte prüfen Sie die Build-Ausgabe oben auf Fehler." exit 1 fi +# Prüfe auf Warnungen im Build-Output, die auf Probleme hinweisen +if echo "$BUILD_OUTPUT" | grep -qi "error\|failed\|missing"; then + echo "" + echo "WARNING: Build-Output enthält möglicherweise Fehler oder Warnungen." + echo "Bitte prüfen Sie die Ausgabe oben." +fi + # Prüfe, ob der Build erfolgreich war - mehrere Checks echo "" echo " Verifying build output..." @@ -200,9 +220,26 @@ else if [ "$NUXT_FILES" -eq 0 ]; then echo "ERROR: .output/public/_nuxt ist leer!" BUILD_FAILED=1 + else + # Prüfe, ob wichtige Dateien vorhanden sind + JS_FILES=$(find .output/public/_nuxt -name "*.js" 2>/dev/null | wc -l) + CSS_FILES=$(find .output/public/_nuxt -name "*.css" 2>/dev/null | wc -l) + echo " ✓ JS-Dateien: $JS_FILES, CSS-Dateien: $CSS_FILES" + if [ "$JS_FILES" -eq 0 ]; then + echo "ERROR: Keine JS-Dateien in .output/public/_nuxt gefunden!" + BUILD_FAILED=1 + fi fi fi +# Check 1b: _nuxt/builds Verzeichnis (für Meta-Dateien) +if [ -d ".output/public/_nuxt/builds" ]; then + BUILD_META_FILES=$(find .output/public/_nuxt/builds -type f 2>/dev/null | wc -l) + echo " ✓ .output/public/_nuxt/builds vorhanden ($BUILD_META_FILES Meta-Dateien)" +else + echo "WARNING: .output/public/_nuxt/builds fehlt (kann in manchen Nuxt-Versionen normal sein)" +fi + # Check 2: Server index.mjs if [ ! -f ".output/server/index.mjs" ]; then echo "ERROR: .output/server/index.mjs fehlt!"