#!/bin/bash # Rebreak Native: Metro Bundler (Kill + Clean Restart). # Killt jede laufende Instanz auf 8081, dann frischer Start mit --clear-Cache. # Aufruf: ./metro.sh (mit cache-clear, Default) # ./metro.sh --keep (ohne --clear, schneller wenn keine Dependency-Changes) set -e cd "$(dirname "$0")" echo "🚇 Metro Bundler" echo "================" # 1) Existierende Metro-Instanz auf Port 8081 killen PIDS=$(lsof -iTCP:8081 -sTCP:LISTEN -n -P 2>/dev/null | awk 'NR>1 {print $2}' | sort -u) if [ -n "$PIDS" ]; then echo "→ Killing existing Metro on :8081 (PIDs: $PIDS)" echo "$PIDS" | xargs kill -9 2>/dev/null || true sleep 1 else echo "→ Kein Metro auf :8081 aktiv" fi # 2) Stale node-Prozesse die expo CLI gestartet haben (Belt-and-Suspenders) pkill -f "expo start" 2>/dev/null || true pkill -f "react-native/cli/build" 2>/dev/null || true # 3) Start if [ "$1" = "--keep" ]; then echo "→ Starte Metro (Cache behalten)" exec npx expo start else echo "→ Starte Metro mit --clear (Haste-Map + Transformer-Cache reset)" exec npx expo start --clear fi