tansci/dev.sh
xuewuerduo ae64616b89 chore: 重构开发启动脚本为跨平台 dev.sh,添加 VS Code 任务配置
- 新增 dev.sh:Linux/Git Bash 通用,杀端口旧进程后启动前后端
- 新增 .vscode/tasks.json:Ctrl+Shift+B 一键重启,前后端独立终端
- 删除 restart.sh:旧 Linux 专用脚本(含硬编码路径)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 23:20:18 +08:00

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