dev #11
@@ -64,6 +64,37 @@ install_dependencies() {
|
||||
fi
|
||||
}
|
||||
|
||||
install_dependencies_if_needed() {
|
||||
local cache_dir=".deploy-cache"
|
||||
local lock_hash_file="$cache_dir/package-lock.sha256"
|
||||
local current_lock_hash=""
|
||||
local previous_lock_hash=""
|
||||
|
||||
if [ ! -f "package-lock.json" ]; then
|
||||
echo " package-lock.json fehlt, führe npm install aus..."
|
||||
install_dependencies
|
||||
return 0
|
||||
fi
|
||||
|
||||
mkdir -p "$cache_dir"
|
||||
current_lock_hash="$(sha256sum package-lock.json | awk '{print $1}')"
|
||||
if [ -f "$lock_hash_file" ]; then
|
||||
previous_lock_hash="$(cat "$lock_hash_file" 2>/dev/null || true)"
|
||||
fi
|
||||
|
||||
if [ ! -d "node_modules" ]; then
|
||||
echo " node_modules fehlt, installiere Dependencies..."
|
||||
install_dependencies
|
||||
elif [ "$current_lock_hash" != "$previous_lock_hash" ]; then
|
||||
echo " package-lock.json geändert, führe npm ci aus..."
|
||||
install_dependencies
|
||||
else
|
||||
echo " package-lock.json unverändert, überspringe npm ci"
|
||||
fi
|
||||
|
||||
printf '%s\n' "$current_lock_hash" > "$lock_hash_file"
|
||||
}
|
||||
|
||||
use_project_node() {
|
||||
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
|
||||
if [ -s "$NVM_DIR/nvm.sh" ]; then
|
||||
@@ -239,7 +270,7 @@ echo ""
|
||||
echo "3. Installing dependencies..."
|
||||
use_project_node
|
||||
ensure_node_version
|
||||
install_dependencies
|
||||
install_dependencies_if_needed
|
||||
|
||||
# 4. Remove old build (but keep data!)
|
||||
echo ""
|
||||
@@ -262,11 +293,16 @@ if [ -d ".output" ]; then
|
||||
echo " ✓ .output gelöscht"
|
||||
fi
|
||||
|
||||
# Auch .nuxt Cache löschen für sauberen Build
|
||||
if [ -d ".nuxt" ]; then
|
||||
echo " Removing .nuxt cache..."
|
||||
rm -rf .nuxt
|
||||
echo " ✓ .nuxt gelöscht"
|
||||
# .nuxt standardmäßig behalten (beschleunigt Folge-Builds deutlich).
|
||||
# Für erzwungenen Clean-Build: CLEAN_NUXT_CACHE=1 ./deploy-production.sh
|
||||
if [ "${CLEAN_NUXT_CACHE:-0}" = "1" ]; then
|
||||
if [ -d ".nuxt" ]; then
|
||||
echo " CLEAN_NUXT_CACHE=1 gesetzt: entferne .nuxt cache..."
|
||||
rm -rf .nuxt
|
||||
echo " ✓ .nuxt gelöscht"
|
||||
fi
|
||||
else
|
||||
echo " Behalte .nuxt cache für schnelleren Build (CLEAN_NUXT_CACHE=1 für Clean-Build)"
|
||||
fi
|
||||
|
||||
# Prüfe, ob node_modules vorhanden ist (für npm run build)
|
||||
@@ -289,17 +325,20 @@ if [ ! -f "node_modules/.package-lock.json" ] && [ ! -f "package-lock.json" ]; t
|
||||
install_dependencies
|
||||
fi
|
||||
|
||||
# Build mit expliziter Fehlerbehandlung und Output-Capture
|
||||
BUILD_OUTPUT=$(npm run build 2>&1)
|
||||
BUILD_EXIT_CODE=$?
|
||||
|
||||
# Zeige Build-Output
|
||||
echo "$BUILD_OUTPUT"
|
||||
# Build mit expliziter Fehlerbehandlung und gleichzeitiger Log-Datei
|
||||
BUILD_LOG_FILE=".deploy-cache/build-$(date +%Y%m%d-%H%M%S).log"
|
||||
mkdir -p ".deploy-cache"
|
||||
if npm run build 2>&1 | tee "$BUILD_LOG_FILE"; then
|
||||
BUILD_EXIT_CODE=0
|
||||
else
|
||||
BUILD_EXIT_CODE=$?
|
||||
fi
|
||||
|
||||
if [ "$BUILD_EXIT_CODE" -ne 0 ]; then
|
||||
echo ""
|
||||
echo "ERROR: Build fehlgeschlagen mit Exit-Code $BUILD_EXIT_CODE"
|
||||
echo "Bitte prüfen Sie die Build-Ausgabe oben auf Fehler."
|
||||
echo "Build-Log: $BUILD_LOG_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -308,10 +347,11 @@ echo " Synchronizing public documents into build output..."
|
||||
sync_public_documents_to_build
|
||||
|
||||
# Prüfe auf Warnungen im Build-Output, die auf Probleme hinweisen
|
||||
if echo "$BUILD_OUTPUT" | grep -qi "error\|failed\|missing"; then
|
||||
if rg -i "error|failed|missing" "$BUILD_LOG_FILE" >/dev/null 2>&1; then
|
||||
echo ""
|
||||
echo "WARNING: Build-Output enthält möglicherweise Fehler oder Warnungen."
|
||||
echo "Bitte prüfen Sie die Ausgabe oben."
|
||||
echo "Build-Log: $BUILD_LOG_FILE"
|
||||
fi
|
||||
|
||||
# Prüfe, ob der Build erfolgreich war - mehrere Checks
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||
export default defineNuxtConfig({
|
||||
devtools: { enabled: true },
|
||||
devtools: { enabled: process.env.NODE_ENV !== 'production' },
|
||||
|
||||
modules: ['@nuxtjs/tailwindcss', '@pinia/nuxt'],
|
||||
|
||||
nitro: {
|
||||
preset: 'node-server',
|
||||
dev: process.env.NODE_ENV !== 'production'
|
||||
dev: process.env.NODE_ENV !== 'production',
|
||||
sourceMap: false
|
||||
},
|
||||
|
||||
vite: {
|
||||
build: {
|
||||
reportCompressedSize: false
|
||||
}
|
||||
},
|
||||
|
||||
// Erzwinge Dev-Port und Host zuverlässig für `npm run dev`
|
||||
|
||||
Reference in New Issue
Block a user