84 lines
2.1 KiB
Bash
84 lines
2.1 KiB
Bash
#!/bin/bash
|
||
# ============================================================
|
||
# OpenHIS 前端部署脚本
|
||
# 用法: bash deploy-frontend.sh [prod|test|staging|dev]
|
||
# 默认: prod
|
||
# ============================================================
|
||
set -e
|
||
|
||
MODE=${1:-prod}
|
||
PROJECT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
||
UI_DIR="$PROJECT_DIR/openhis-ui-vue3"
|
||
DIST_DIR="$UI_DIR/dist"
|
||
|
||
echo "=========================================="
|
||
echo " OpenHIS 前端部署"
|
||
echo " 环境: $MODE"
|
||
echo " 目录: $UI_DIR"
|
||
echo "=========================================="
|
||
|
||
# ---------- 1. 环境检查 ----------
|
||
echo ""
|
||
echo "[1/5] 环境检查..."
|
||
|
||
check_cmd() {
|
||
if ! command -v "$1" &> /dev/null; then
|
||
echo "错误: 未找到 $1,请先安装"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
check_cmd node
|
||
check_cmd npm
|
||
|
||
NODE_VER=$(node -v | sed 's/v//' | cut -d. -f1)
|
||
if [ "$NODE_VER" -lt 18 ]; then
|
||
echo "错误: Node.js 版本需要 >= 18,当前: $(node -v)"
|
||
exit 1
|
||
fi
|
||
|
||
echo " Node.js: $(node -v) ✓"
|
||
echo " npm: $(npm -v) ✓"
|
||
|
||
# ---------- 2. 安装依赖 ----------
|
||
echo ""
|
||
echo "[2/5] 安装依赖..."
|
||
cd "$UI_DIR"
|
||
|
||
# 清理旧的 node_modules(可选,取消注释启用)
|
||
# echo " 清理旧依赖..."
|
||
# rm -rf node_modules package-lock.json
|
||
|
||
npm install --production=false --legacy-peer-deps
|
||
echo " 依赖安装完成 ✓"
|
||
|
||
# ---------- 3. 构建 ----------
|
||
echo ""
|
||
echo "[3/5] 构建 ($MODE)..."
|
||
npm run "build:$MODE"
|
||
echo " 构建完成 ✓"
|
||
|
||
# ---------- 4. 产物信息 ----------
|
||
echo ""
|
||
echo "[4/5] 构建产物:"
|
||
TOTAL_SIZE=$(du -sh "$DIST_DIR" 2>/dev/null | cut -f1)
|
||
FILE_COUNT=$(find "$DIST_DIR" -type f | wc -l)
|
||
echo " 路径: $DIST_DIR"
|
||
echo " 大小: $TOTAL_SIZE"
|
||
echo " 文件: $FILE_COUNT 个"
|
||
|
||
# ---------- 5. 部署提示 ----------
|
||
echo ""
|
||
echo "[5/5] 部署方式:"
|
||
echo ""
|
||
echo " 方式一: 复制到 Nginx"
|
||
echo " cp -r $DIST_DIR/* /usr/share/nginx/html/openhis/"
|
||
echo " nginx -s reload"
|
||
echo ""
|
||
echo " 方式二: 软链接(推荐,方便更新)"
|
||
echo " ln -sfn $DIST_DIR /usr/share/nginx/html/openhis"
|
||
echo " nginx -s reload"
|
||
echo ""
|
||
echo "=========================================="
|
||
echo " 部署完成!"
|
||
echo "==========================================" |