Implement environment variable setup for frontend; create .env.production and .env.development files if they don't exist, and update API URLs in frontend components to use dynamic API_BASE_URL for improved configuration management.

This commit is contained in:
Torsten Schulz (local)
2025-10-18 23:36:31 +02:00
parent b066ffdeb4
commit efbb699b4b
25 changed files with 577 additions and 41 deletions

76
frontend/FIX_API_URLS.sh Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/bash
# =============================================================================
# TimeClock v3 - Fix hardcodierte API URLs
# =============================================================================
set -e
echo "🔧 Ersetze hardcodierte API-URLs durch zentrale Konfiguration..."
cd "$(dirname "$0")"
# Backup erstellen
echo "📦 Erstelle Backup..."
tar -czf ~/timeclock-frontend-backup-$(date +%Y%m%d_%H%M%S).tar.gz src/
# .env.production erstellen
echo "📝 Erstelle .env.production..."
cat > .env.production << 'EOF'
# TimeClock v3 - Frontend Production Environment
# API Base URL (relativ, da Apache als Proxy dient)
VITE_API_URL=/api
EOF
# .env.development erstellen
echo "📝 Erstelle .env.development..."
cat > .env.development << 'EOF'
# TimeClock v3 - Frontend Development Environment
VITE_API_URL=http://localhost:3010/api
EOF
# Ersetze alle hardcodierten URLs in Views
echo "🔄 Ersetze URLs in Views..."
# Pattern: http://localhost:3010/api → ${API_URL}
# Muss in mehreren Schritten erfolgen, da die Syntax unterschiedlich ist
find src/views -name "*.vue" -type f -exec sed -i "s|'http://localhost:3010/api|'\${API_URL}|g" {} \;
find src/views -name "*.vue" -type f -exec sed -i 's|"http://localhost:3010/api|"${API_URL}|g' {} \;
find src/views -name "*.vue" -type f -exec sed -i 's|`http://localhost:3010/api|`${API_URL}|g' {} \;
# Füge API_URL Import hinzu wo benötigt
echo "📦 Füge Imports hinzu..."
# Einfacher Ansatz: Erstelle eine Liste der Dateien mit API-Aufrufen
grep -l "localhost:3010" src/views/*.vue 2>/dev/null | while read -r file; do
# Prüfe ob Import bereits vorhanden
if ! grep -q "import.*API_BASE_URL.*from.*@/config/api" "$file"; then
# Füge Import nach dem ersten <script setup> hinzu
sed -i '/<script setup>/a import { API_BASE_URL as API_URL } from '\''@/config/api'\''' "$file"
fi
done
find src/components -name "*.vue" -type f -exec sed -i "s|'http://localhost:3010/api|'\${API_URL}|g" {} \;
find src/components -name "*.vue" -type f -exec sed -i 's|"http://localhost:3010/api|"${API_URL}|g' {} \;
find src/components -name "*.vue" -type f -exec sed -i 's|`http://localhost:3010/api|`${API_URL}|g' {} \;
grep -l "localhost:3010" src/components/*.vue 2>/dev/null | while read -r file; do
if ! grep -q "import.*API_BASE_URL.*from.*@/config/api" "$file"; then
sed -i '/<script setup>/a import { API_BASE_URL as API_URL } from '\''@/config/api'\''' "$file"
fi
done
echo ""
echo "✅ Fertig!"
echo ""
echo "📋 Nächste Schritte:"
echo " 1. npm run build"
echo " 2. Kopiere dist/ auf den Server"
echo ""
echo "🔍 Prüfe ob alle URLs ersetzt wurden:"
echo " grep -r 'localhost:3010' src/"
echo ""
exit 0