#!/bin/bash # 部署脚本 - 将构建好的管理后台文件上传到服务器 # 使用方法: ./deploy.sh SERVER_IP="101.200.208.45" USERNAME="root" REMOTE_PATH="/data/www/emotion-museum-admin" echo "开始部署管理后台应用到服务器..." # 检查是否安装了npm if ! command -v npm &> /dev/null; then echo "❌ 错误: 未找到npm命令,请先安装Node.js" exit 1 fi # 清理旧的构建文件 echo "🧹 清理旧的构建文件..." rm -rf dist # 执行构建(使用生产环境配置) echo "📦 开始构建管理后台项目(生产环境)..." if NODE_ENV=production npm run build; then echo "✅ 管理后台项目构建成功" else echo "❌ 管理后台项目构建失败,请检查代码" exit 1 fi # 验证dist目录是否存在 if [ ! -d "dist" ]; then echo "❌ 错误: 构建后dist目录仍不存在,请检查构建配置" exit 1 fi # 检查是否安装了scp命令 if ! command -v scp &> /dev/null; then echo "❌ 错误: 未找到scp命令,请安装OpenSSH客户端" exit 1 fi echo "正在上传文件到服务器 $SERVER_IP..." # 创建远程目录(如果不存在) echo "📁 创建远程目录..." ssh "${USERNAME}@${SERVER_IP}" "mkdir -p ${REMOTE_PATH}" # 上传所有文件到服务器 echo "📤 上传文件到服务器..." if scp dist/index.html "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/" && \ scp -r dist/assets "${USERNAME}@${SERVER_IP}:${REMOTE_PATH}/"; then # 设置文件权限 echo "🔐 设置文件权限..." ssh "${USERNAME}@${SERVER_IP}" "chmod -R 755 ${REMOTE_PATH}" echo "✅ 管理后台部署完成!" echo "📱 访问地址: http://$SERVER_IP/emotion-museum-admin/" echo "🔧 管理后台功能: AI配置管理、用户管理、数据统计等" else echo "❌ 部署失败,请检查:" echo "1. 服务器IP地址是否正确" echo "2. SSH密钥是否配置正确" echo "3. 服务器目录权限是否正确" exit 1 fi