#!/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