36 lines
1.6 KiB
Bash
36 lines
1.6 KiB
Bash
|
|
#!/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 节"
|