chore: 修改启动命令
This commit is contained in:
+33
-26
@@ -2,15 +2,20 @@
|
||||
# 双击本文件,或在终端执行:./start.command
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
BACKEND_HOST="127.0.0.1"
|
||||
BACKEND_PORT="8800"
|
||||
BACKEND_URL="http://${BACKEND_HOST}:${BACKEND_PORT}"
|
||||
STUDIO_URL="http://localhost:8900"
|
||||
|
||||
if [[ ! -d .venv ]]; then
|
||||
echo "未找到 .venv,正在创建并安装依赖…"
|
||||
echo "未找到 .venv,正在创建…"
|
||||
python3 -m venv .venv || exit 1
|
||||
source .venv/bin/activate
|
||||
pip install -r server/requirements.txt || exit 1
|
||||
else
|
||||
source .venv/bin/activate
|
||||
fi
|
||||
|
||||
source .venv/bin/activate
|
||||
# 每次启动都同步依赖,requirements.txt 有更新时自动补装(已装满时耗时极短)
|
||||
pip install -q -r server/requirements.txt || exit 1
|
||||
|
||||
if [[ ! -f .env ]]; then
|
||||
echo "未找到 .env,已从 .env.example 复制,请填入 DEEPSEEK_API_KEY 后再启动。"
|
||||
cp .env.example .env
|
||||
@@ -19,37 +24,39 @@ if [[ ! -f .env ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# studio 依赖检查(node_modules 不存在时安装)
|
||||
if [[ -d studio ]] && [[ ! -d studio/node_modules ]]; then
|
||||
echo "未找到 studio/node_modules,正在安装依赖…"
|
||||
(cd studio && pnpm install) || exit 1
|
||||
fi
|
||||
|
||||
# 后台启动 studio(Vite,8900 端口,/api 代理到 8800)
|
||||
# ---- 同步并启动前端(studio:Vite 开发服务器,/api 代理到后端 8800)----
|
||||
STUDIO_PID=""
|
||||
if [[ -d studio ]]; then
|
||||
(cd studio && pnpm dev) &
|
||||
STUDIO_PID=$!
|
||||
echo "studio 已后台启动:http://127.0.0.1:8900/"
|
||||
fi
|
||||
|
||||
# Ctrl-C / 退出时把 studio 一起停掉
|
||||
cleanup() {
|
||||
if [[ -n "$STUDIO_PID" ]]; then
|
||||
echo "正在停止 studio…"
|
||||
stop_studio() {
|
||||
if [[ -n "$STUDIO_PID" ]] && kill -0 "$STUDIO_PID" 2>/dev/null; then
|
||||
kill "$STUDIO_PID" 2>/dev/null
|
||||
sleep 0.2
|
||||
# 兜底:确保 vite 及其子进程退出
|
||||
lsof -ti :8900 | xargs kill 2>/dev/null
|
||||
fi
|
||||
}
|
||||
trap cleanup EXIT INT TERM
|
||||
trap stop_studio EXIT
|
||||
|
||||
if ! command -v pnpm >/dev/null 2>&1; then
|
||||
echo "⚠️ 未找到 pnpm,本次跳过 studio 前端(可手动:cd studio && pnpm dev)"
|
||||
# CI=true:node_modules 与 lockfile 不一致时自动重建,不弹确认
|
||||
elif CI=true pnpm -C studio install --silent; then
|
||||
pnpm -C studio dev & # vite:8900,启动后会自动打开浏览器
|
||||
STUDIO_PID=$!
|
||||
else
|
||||
echo "⚠️ studio 依赖安装失败,本次只启动后端"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "后端启动中:http://127.0.0.1:8800/ozonSeller.html"
|
||||
echo "studio 启动中:http://127.0.0.1:8900/"
|
||||
echo "前端访问地址:"
|
||||
echo " 工具台 v1(web/) $BACKEND_URL/ozonSeller.html"
|
||||
echo " 发布工作台(studio/) $STUDIO_URL"
|
||||
echo " 后端 API 文档 $BACKEND_URL/docs"
|
||||
echo
|
||||
echo "按 Ctrl+C 可停止全部服务"
|
||||
echo
|
||||
|
||||
# --app-dir server 让 uvicorn 在 server/ 下找 main:app,工作目录仍是仓库根(.env 在此)
|
||||
uvicorn main:app --app-dir server --reload --reload-include '*.yaml' --host 127.0.0.1 --port 8800
|
||||
uvicorn main:app --app-dir server --reload --reload-include '*.yaml' --host "$BACKEND_HOST" --port "$BACKEND_PORT"
|
||||
|
||||
echo
|
||||
echo "服务已停止。按回车关闭窗口…"
|
||||
|
||||
Reference in New Issue
Block a user