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:
76
frontend/FIX_API_URLS.sh
Executable file
76
frontend/FIX_API_URLS.sh
Executable 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
|
||||
|
||||
Reference in New Issue
Block a user