35 lines
1.1 KiB
Bash
Executable File
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
|