33 lines
1.1 KiB
Bash
33 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
||
# 仅启动后端 API(前后端分离时使用)
|
||
# 在项目根目录执行: ./start-api.sh 或 PORT=3001 ./start-api.sh
|
||
# 若修改了默认端口,前端 api.config.json 的 apiBase 需填完整地址(含端口),如 http://域名或IP:5599
|
||
|
||
set -e
|
||
cd "$(dirname "$0")/server"
|
||
PORT="${PORT:-5599}"
|
||
export PORT
|
||
|
||
# 释放端口,避免 EADDRINUSE(上次未退出或多次启动)
|
||
if command -v lsof >/dev/null 2>&1; then
|
||
pids=$(lsof -t -i ":$PORT" 2>/dev/null) || true
|
||
if [ -n "$pids" ]; then
|
||
echo "[720yun-offline-api] 停止占用端口 ${PORT} 的进程: $pids"
|
||
echo "$pids" | xargs kill 2>/dev/null || true
|
||
sleep 1
|
||
fi
|
||
elif command -v fuser >/dev/null 2>&1; then
|
||
if fuser -n tcp "$PORT" >/dev/null 2>&1; then
|
||
echo "[720yun-offline-api] 停止占用端口 ${PORT} 的进程..."
|
||
fuser -k "$PORT/tcp" 2>/dev/null || true
|
||
sleep 1
|
||
fi
|
||
fi
|
||
|
||
echo "[720yun-offline-api] 安装依赖..."
|
||
npm install --no-audit --no-fund
|
||
|
||
echo "[720yun-offline-api] 启动 API http://0.0.0.0:${PORT}"
|
||
echo "[720yun-offline-api] 前端请将 api.config.json 的 apiBase 设为: http://本机IP或域名:${PORT}"
|
||
exec node index.js
|