87 lines
2.1 KiB
Bash
Executable File
87 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 随记 Web 前端部署脚本
|
|
# 功能:构建 Vue 项目并部署到服务器指定目录
|
|
|
|
set -e # 遇到错误立即退出
|
|
|
|
# 配置
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
WEB_DIR="${SCRIPT_DIR}/web"
|
|
SOURCE_DIR="${WEB_DIR}/dist"
|
|
TARGET_DIR="/home/yuany3721/webpages/note"
|
|
|
|
# 颜色输出
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${YELLOW}========================================${NC}"
|
|
echo -e "${YELLOW} 开始部署 随记 Web 前端${NC}"
|
|
echo -e "${YELLOW}========================================${NC}"
|
|
echo ""
|
|
|
|
# 检查 web 目录是否存在
|
|
if [ ! -d "$WEB_DIR" ]; then
|
|
echo -e "${RED}错误:找不到 web 目录: $WEB_DIR${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 切换到 web 目录
|
|
cd "$WEB_DIR"
|
|
|
|
# 检查 package.json
|
|
if [ ! -f "package.json" ]; then
|
|
echo -e "${RED}错误:无法找到 package.json${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 步骤 1: 构建项目
|
|
echo -e "${YELLOW}[1/3] 正在构建项目...${NC}"
|
|
npm run build
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}构建失败!${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}✓ 构建成功${NC}"
|
|
echo ""
|
|
|
|
# 步骤 2: 检查源目录是否存在
|
|
if [ ! -d "$SOURCE_DIR" ]; then
|
|
echo -e "${RED}错误:构建输出目录不存在: $SOURCE_DIR${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 步骤 3: 清空目标目录
|
|
echo -e "${YELLOW}[2/3] 正在清空目标目录...${NC}"
|
|
if [ -d "$TARGET_DIR" ]; then
|
|
rm -rf "${TARGET_DIR:?}/"*
|
|
echo -e "${GREEN}✓ 已清空: $TARGET_DIR${NC}"
|
|
else
|
|
echo -e "${YELLOW}目标目录不存在,正在创建...${NC}"
|
|
mkdir -p "$TARGET_DIR"
|
|
echo -e "${GREEN}✓ 已创建: $TARGET_DIR${NC}"
|
|
fi
|
|
echo ""
|
|
|
|
# 步骤 4: 复制文件
|
|
echo -e "${YELLOW}[3/3] 正在复制文件到目标目录...${NC}"
|
|
cp -r "${SOURCE_DIR}/"* "$TARGET_DIR/"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ 文件复制成功${NC}"
|
|
else
|
|
echo -e "${RED}文件复制失败!${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} 部署完成!${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "目标目录: ${TARGET_DIR}"
|
|
|