package.sh 1.85 KB
#!/bin/bash

# 抖音前端项目打包脚本
# 用于打包 dist 目录,方便部署到宝塔

# 设置颜色输出
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"

echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}  抖音前端项目打包工具${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""

# 检查 dist 目录是否存在
if [ ! -d "dist" ]; then
    echo -e "${RED}错误: dist 目录不存在!${NC}"
    echo -e "${YELLOW}请先运行 npm run build 构建项目${NC}"
    exit 1
fi

# 检查 dist 目录是否为空
if [ -z "$(ls -A dist)" ]; then
    echo -e "${RED}错误: dist 目录为空!${NC}"
    echo -e "${YELLOW}请先运行 npm run build 构建项目${NC}"
    exit 1
fi

# 生成时间戳
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
ZIP_NAME="douyin_frontend_${TIMESTAMP}.zip"

echo -e "${YELLOW}正在打包 dist 目录...${NC}"

# 进入 dist 目录,打包其内容(不包含 dist 目录本身)
cd "$SCRIPT_DIR/dist"
zip -r "../$ZIP_NAME" . -x "*.DS_Store" "*.git*" "*.log" "*.tmp"
cd "$SCRIPT_DIR"

if [ $? -eq 0 ]; then
    echo ""
    echo -e "${GREEN}✓ 打包成功!${NC}"
    echo -e "${GREEN}打包文件: ${ZIP_NAME}${NC}"
    echo ""
    
    # 显示文件大小
    FILE_SIZE=$(du -h "$ZIP_NAME" | cut -f1)
    echo -e "${GREEN}文件大小: ${FILE_SIZE}${NC}"
    echo ""
    echo -e "${YELLOW}部署说明:${NC}"
    echo "1. 将 ${ZIP_NAME} 上传到宝塔服务器"
    echo "2. 解压到网站根目录(如 /www/wwwroot/your-domain/)"
    echo "3. 确保 dist 目录下的所有文件都在网站根目录"
    echo "4. 配置 Nginx/Apache 指向网站根目录"
    echo ""
else
    echo ""
    echo -e "${RED}✗ 打包失败!${NC}"
    exit 1
fi