35 lines
1.1 KiB
Bash
Executable File

#!/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