#!/usr/bin/env bash set -euo pipefail # shellcheck disable=SC1091 source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common.sh" ensure_runtime_dir UI_DIR="$REPO_DIR/yudao-ui-admin-vue3" VITE="$UI_DIR/node_modules/vite/bin/vite.js" [[ -f "$VITE" ]] || { echo '前端依赖未安装,请在 yudao-ui-admin-vue3 执行 pnpm install --frozen-lockfile。' >&2; exit 1; } PID_FILE="$RUNTIME_DIR/ui.pid" if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then echo "前端已在运行,PID $(cat "$PID_FILE")。"; exit 1 fi NODE="$(resolve_node)" if (command -v lsof >/dev/null 2>&1 && lsof -nP -iTCP:"$ELDER_UI_PORT" -sTCP:LISTEN >/dev/null); then echo "端口 $ELDER_UI_PORT 已被占用。" >&2; exit 1 fi cat > "$UI_DIR/.env.desktop" <"$RUNTIME_DIR/ui-stdout.log" 2>"$RUNTIME_DIR/ui-stderr.log" & echo $! > "$PID_FILE" echo "前端已启动,PID $(cat "$PID_FILE"):http://127.0.0.1:$ELDER_UI_PORT"