Improve deployment script with enhanced build validation and error handling
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 47s

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.
This commit is contained in:
Torsten Schulz (local)
2026-01-08 09:14:17 +01:00
parent 8fa8c8b5d9
commit 010e89212f

View File

@@ -176,14 +176,34 @@ echo "5. Building application..."
echo " Running: npm run build" echo " Running: npm run build"
echo " (This may take a few minutes...)" echo " (This may take a few minutes...)"
# Build mit expliziter Fehlerbehandlung # Clean-Build: Stelle sicher, dass node_modules aktuell ist
if ! npm run build; then 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 ""
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." echo "Bitte prüfen Sie die Build-Ausgabe oben auf Fehler."
exit 1 exit 1
fi 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 # Prüfe, ob der Build erfolgreich war - mehrere Checks
echo "" echo ""
echo " Verifying build output..." echo " Verifying build output..."
@@ -200,7 +220,24 @@ else
if [ "$NUXT_FILES" -eq 0 ]; then if [ "$NUXT_FILES" -eq 0 ]; then
echo "ERROR: .output/public/_nuxt ist leer!" echo "ERROR: .output/public/_nuxt ist leer!"
BUILD_FAILED=1 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
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 fi
# Check 2: Server index.mjs # Check 2: Server index.mjs