#!/usr/bin/env bash # H5 前端一键部署到云服务器(需 sshpass,或已配置 SSH 免密) # 支持 HBuilder 导出 web 或 h5 路径 set -e cd "$(dirname "$0")/.." REMOTE="root@182.92.142.158" REMOTE_PUBLIC="/www/wwwroot/hjf.suzhouyuqi.com/public" BACKUP_DIR="/www/wwwroot/backup" # 优先使用 web,其次 h5 if [ -d "pro_v3.5.1/view/uniapp/unpackage/dist/build/web" ]; then H5_SRC="pro_v3.5.1/view/uniapp/unpackage/dist/build/web" elif [ -d "pro_v3.5.1/view/uniapp/unpackage/dist/build/h5" ]; then H5_SRC="pro_v3.5.1/view/uniapp/unpackage/dist/build/h5" else echo "错误:未找到 H5 构建产物(web 或 h5),请先用 HBuilder 或 npm run build:h5 打包" exit 1 fi echo "备份云服务器 public 目录(上一版本)..." ssh "$REMOTE" "mkdir -p $BACKUP_DIR && tar -czf $BACKUP_DIR/hjf_public_\$(date +%Y%m%d_%H%M%S).tar.gz -C /www/wwwroot/hjf.suzhouyuqi.com public && echo '备份完成'" echo "上传 H5 到 $REMOTE:$REMOTE_PUBLIC ..." # 先删除旧的 index.html、static、assets、pages,避免 /h5/ 路径残留 ssh "$REMOTE" "cd $REMOTE_PUBLIC && rm -f index.html && rm -rf static assets pages 2>/dev/null; true" tar czf - -C "$H5_SRC" . | ssh "$REMOTE" "cd $REMOTE_PUBLIC && tar xzf -" echo "修改权限 ..." ssh "$REMOTE" "chown -R www:www $REMOTE_PUBLIC && chmod -R 755 $REMOTE_PUBLIC" echo "" echo "验证 index.html 引用路径(应为 /static/ 而非 /h5/static/):" ssh "$REMOTE" "grep -oE 'src=[^>]+\.js' $REMOTE_PUBLIC/index.html 2>/dev/null | head -3" echo "" echo "部署完成。访问 https://hjf.suzhouyuqi.com/ 验证。若仍报 Unexpected token '<',见 docs/deploy.md 4.7 节"