支持 meilisearch 管理

This commit is contained in:
eafonyang
2026-08-14 11:26:20 +08:00
parent f99f622977
commit 160307087d
14 changed files with 759 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
#!/usr/bin/env bash
# ============================================================
# 统一构建脚本:在对应项目目录执行构建命令
# backend -> dashboard/backend pnpm buildtsc
# frontend -> dashboard/frontend pnpm buildvite build --mode prod
# www -> www pnpm generatenuxt 静态生成)
#
# 不带参数时默认构建全部三个项目(顺序:backend -> frontend -> www
#
# 用法:./deploy/build.sh [项目...]
# ============================================================
set -euo pipefail
# 仓库根目录 = 本脚本所在目录的上一级
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
usage() {
cat <<EOF
用法: $(basename "$0") [项目...]
可构建项目:
backend, b dashboard/backend pnpm buildtsc
frontend, f dashboard/frontend pnpm buildvite build --mode prod
www, w www pnpm generatenuxt 静态生成)
不带参数时默认构建全部三个项目(顺序:backend -> frontend -> www)。
示例:
$(basename "$0") backend 仅构建后端
$(basename "$0") frontend www 构建前端与 www
$(basename "$0") 构建全部
EOF
}
declare -a TARGETS=()
add_target() {
local t="$1"
# 去重
for existing in "${TARGETS[@]:-}"; do
[[ "$existing" == "$t" ]] && return
done
TARGETS+=("$t")
}
for arg in "$@"; do
case "$arg" in
-h|--help) usage; exit 0 ;;
backend|b) add_target backend ;;
frontend|f) add_target frontend ;;
www|w) add_target www ;;
*) echo "错误: 未知项目「${arg}" >&2; usage; exit 1 ;;
esac
done
# 默认构建全部
if [[ ${#TARGETS[@]} -eq 0 ]]; then
TARGETS=(backend frontend www)
fi
run_build() {
local name="$1" dir="$2" cmd="$3"
echo ""
echo "==> [$name] 在 $dir 执行: $cmd"
(cd "$ROOT/$dir" && $cmd)
echo "==> [$name] 构建完成"
}
for t in "${TARGETS[@]}"; do
case "$t" in
backend) run_build backend dashboard/backend "pnpm build" ;;
frontend) run_build frontend dashboard/frontend "pnpm build" ;;
www) run_build www www "pnpm generate" ;;
esac
done
echo ""
echo "全部构建完成: ${TARGETS[*]}"