48 lines
1.5 KiB
Bash
48 lines
1.5 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
if [ -z "${BASH_VERSION:-}" ]; then exec /usr/bin/env bash "$0" "$@"; fi
|
|||
|
|
set -euo pipefail
|
|||
|
|
ROOT_DIR="$(pwd)"
|
|||
|
|
|
|||
|
|
# ==================== 工具函数 ====================
|
|||
|
|
info() {
|
|||
|
|
echo "[INFO] $1"
|
|||
|
|
}
|
|||
|
|
warn() {
|
|||
|
|
echo "[WARN] $1"
|
|||
|
|
}
|
|||
|
|
error() {
|
|||
|
|
echo "[ERROR] $1"
|
|||
|
|
exit 1
|
|||
|
|
}
|
|||
|
|
check_command() {
|
|||
|
|
if ! command -v "$1" &> /dev/null; then
|
|||
|
|
error "命令 $1 未找到,请先安装"
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
info "==================== 开始构建 ===================="
|
|||
|
|
info "开始执行构建脚本(build_prod.sh)..."
|
|||
|
|
info "正在检查依赖命令是否存在..."
|
|||
|
|
# 检查核心命令
|
|||
|
|
check_command "pnpm"
|
|||
|
|
check_command "npm"
|
|||
|
|
|
|||
|
|
# ==================== 安装 Node 依赖 ====================
|
|||
|
|
info "==================== 安装 Node 依赖 ===================="
|
|||
|
|
info "开始安装 Node 依赖"
|
|||
|
|
if [ -f "$ROOT_DIR/package.json" ]; then
|
|||
|
|
info "进入目录:$ROOT_DIR"
|
|||
|
|
info "正在执行:pnpm install"
|
|||
|
|
(cd "$ROOT_DIR" && pnpm install --registry=https://registry.npmmirror.com) || error "Node 依赖安装失败"
|
|||
|
|
else
|
|||
|
|
warn "未找到 $ROOT_DIR/package.json 文件,请检查路径是否正确"
|
|||
|
|
fi
|
|||
|
|
info "==================== 依赖安装完成!====================\n"
|
|||
|
|
|
|||
|
|
info "==================== dist打包 ===================="
|
|||
|
|
info "开始执行:pnpm run build (server)"
|
|||
|
|
(pushd "$ROOT_DIR/server" > /dev/null && pnpm run build; popd > /dev/null) || error "dist打包失败"
|
|||
|
|
info "==================== dist打包完成!====================\n"
|
|||
|
|
|
|||
|
|
info "下一步:执行 ./prod_run.sh 启动服务"
|