40 lines
1.4 KiB
Bash
40 lines
1.4 KiB
Bash
|
|
#!/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" <<EOF
|
|||
|
|
NODE_ENV=development
|
|||
|
|
VITE_DEV=true
|
|||
|
|
VITE_PORT=$ELDER_UI_PORT
|
|||
|
|
VITE_OPEN=false
|
|||
|
|
VITE_BASE_URL=http://127.0.0.1:$ELDER_SERVER_PORT
|
|||
|
|
VITE_UPLOAD_TYPE=server
|
|||
|
|
VITE_UPLOAD_URL=http://127.0.0.1:$ELDER_SERVER_PORT/admin-api/infra/file/upload
|
|||
|
|
VITE_API_BASEPATH=/dev-api
|
|||
|
|
VITE_API_URL=/admin-api
|
|||
|
|
VITE_BASE_PATH=/
|
|||
|
|
VITE_APP_CAPTCHA_ENABLE=false
|
|||
|
|
VITE_APP_DOCALERT_ENABLE=false
|
|||
|
|
VITE_APP_BAIDU_CODE=
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
nohup "$NODE" "$VITE" --mode desktop --host 127.0.0.1 --port "$ELDER_UI_PORT" --strictPort \
|
|||
|
|
>"$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"
|