fix:优化界面
This commit is contained in:
64
run-dev.sh
Normal file
64
run-dev.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# 加载本地 .env(如果存在),便于在开发环境下配置 WECHAT_UPSTREAM_BASE_URL 等
|
||||
if [ -f ".env" ]; then
|
||||
set -o allexport
|
||||
# shellcheck disable=SC1091
|
||||
. ./.env
|
||||
set +o allexport
|
||||
fi
|
||||
|
||||
FRONTEND_PORT=${FRONTEND_PORT:-3000}
|
||||
BACKEND_PORT=${BACKEND_PORT:-8000}
|
||||
UPSTREAM_URL=${WECHAT_UPSTREAM_BASE_URL:-http://your-wechat-server-host:port}
|
||||
|
||||
# 自动结束占用端口的进程(macOS / Linux 通用)
|
||||
kill_port() {
|
||||
local port=$1
|
||||
local pids
|
||||
pids=$(lsof -ti :"${port}" 2>/dev/null || true)
|
||||
if [ -n "$pids" ]; then
|
||||
echo "Killing process(es) on port ${port}: ${pids}"
|
||||
echo "$pids" | xargs kill -9 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
echo "Checking ports ${FRONTEND_PORT} and ${BACKEND_PORT}..."
|
||||
kill_port "${FRONTEND_PORT}"
|
||||
kill_port "${BACKEND_PORT}"
|
||||
sleep 1
|
||||
|
||||
echo "Using ports: frontend=${FRONTEND_PORT}, backend=${BACKEND_PORT}"
|
||||
echo "WECHAT_UPSTREAM_BASE_URL=${UPSTREAM_URL}"
|
||||
|
||||
echo "Ensuring Python venv and backend deps..."
|
||||
|
||||
if [ ! -d ".venv" ]; then
|
||||
python3 -m venv .venv
|
||||
fi
|
||||
|
||||
source .venv/bin/activate
|
||||
pip install -r backend/requirements.txt >/dev/null
|
||||
|
||||
echo "Ensuring Node dependencies..."
|
||||
npm install >/dev/null
|
||||
|
||||
echo "Starting FastAPI backend on :${BACKEND_PORT}..."
|
||||
WECHAT_UPSTREAM_BASE_URL="${UPSTREAM_URL}" uvicorn backend.main:app --host 0.0.0.0 --port "${BACKEND_PORT}" &
|
||||
BACKEND_PID=$!
|
||||
|
||||
echo "Starting Node frontend dev server on :${FRONTEND_PORT}..."
|
||||
PORT="${FRONTEND_PORT}" npm run dev &
|
||||
FRONTEND_PID=$!
|
||||
|
||||
trap 'echo "Stopping dev servers..."; kill ${BACKEND_PID} ${FRONTEND_PID} 2>/dev/null || true' INT TERM
|
||||
|
||||
# On macOS /posix sh, wait -n is not available; wait on both instead.
|
||||
wait "${BACKEND_PID}"
|
||||
wait "${FRONTEND_PID}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user