- 新增 dev.sh:Linux/Git Bash 通用,杀端口旧进程后启动前后端 - 新增 .vscode/tasks.json:Ctrl+Shift+B 一键重启,前后端独立终端 - 删除 restart.sh:旧 Linux 专用脚本(含硬编码路径) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
81 lines
2.6 KiB
Bash
81 lines
2.6 KiB
Bash
#!/bin/bash
|
|
# ============================================================
|
|
# 开发启动脚本 (Linux / Git Bash 通用)
|
|
# 用法:
|
|
# bash dev.sh backend 启动后端 (端口 9999)
|
|
# bash dev.sh frontend 启动前端 (端口 3000)
|
|
# bash dev.sh kill 关闭所有项目进程
|
|
# ============================================================
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
kill_port() {
|
|
local port=$1
|
|
local pids
|
|
if [ "$IS_WIN" = true ]; then
|
|
# Windows: netstat -ano 第5列是PID
|
|
pids=$(netstat -ano 2>/dev/null | grep ":$port" | grep "LISTENING" | awk '{print $5}' | sort -u)
|
|
else
|
|
# Linux: lsof 或 ss
|
|
pids=$(lsof -ti :$port 2>/dev/null || ss -tlnp 2>/dev/null | grep ":$port" | grep -oP 'pid=\K\d+' | sort -u)
|
|
fi
|
|
if [ -n "$pids" ]; then
|
|
for pid in $pids; do
|
|
if [ "$IS_WIN" = true ]; then
|
|
taskkill //F //PID "$pid" 2>/dev/null
|
|
else
|
|
kill -9 "$pid" 2>/dev/null
|
|
fi
|
|
echo " [KILL] PID $pid (port $port)"
|
|
done
|
|
else
|
|
echo " [OK] 端口 $port 无进程"
|
|
fi
|
|
}
|
|
|
|
# 检测系统
|
|
case "$OSTYPE" in
|
|
msys|cygwin|win32) IS_WIN=true ;;
|
|
*) IS_WIN=false ;;
|
|
esac
|
|
|
|
case "${1}" in
|
|
backend)
|
|
kill_port 9999
|
|
sleep 1
|
|
cd "$SCRIPT_DIR/our-itam"
|
|
echo "=== our-itam 后端启动中... 端口:9999 ==="
|
|
mvn spring-boot:run -Dspring-boot.run.profiles=dev
|
|
;;
|
|
frontend)
|
|
kill_port 3000
|
|
sleep 1
|
|
cd "$SCRIPT_DIR/antdv-next-admin"
|
|
echo "=== antdv-next-admin 前端启动中... 端口:3000 ==="
|
|
npm run dev
|
|
;;
|
|
kill)
|
|
kill_port 9999
|
|
kill_port 3000
|
|
echo "=== 已关闭全部 ==="
|
|
;;
|
|
check)
|
|
echo "SCRIPT_DIR: $SCRIPT_DIR"
|
|
echo "IS_WIN: $IS_WIN"
|
|
echo "mvn: $(which mvn 2>/dev/null || echo 'NOT FOUND')"
|
|
echo "npm: $(which npm 2>/dev/null || echo 'NOT FOUND')"
|
|
echo "node: $(which node 2>/dev/null || echo 'NOT FOUND')"
|
|
echo "---"
|
|
echo "pom.xml: $(ls "$SCRIPT_DIR/our-itam/pom.xml" 2>/dev/null || echo 'NOT FOUND')"
|
|
echo "package.json: $(ls "$SCRIPT_DIR/antdv-next-admin/package.json" 2>/dev/null || echo 'NOT FOUND')"
|
|
;;
|
|
*)
|
|
echo "用法: bash dev.sh [backend|frontend|kill|check]"
|
|
echo ""
|
|
echo " backend 启动后端 (端口 9999)"
|
|
echo " frontend 启动前端 (端口 3000)"
|
|
echo " kill 关闭所有项目进程"
|
|
echo " check 检查环境"
|
|
;;
|
|
esac
|