Name Last Update
..
README.md Loading commit data...
config.sh Loading commit data...
deploy.sh Loading commit data...

H5 项目多环境部署方案

概述

本部署方案支持将 H5 项目一键部署到一个或多个环境,适用于前端开发团队的日常发布流程。

特性

  • 多环境支持:dev、oa、behalo 三个环境
  • 批量部署:一次部署到多个环境
  • 交互确认:部署前需确认,防止误操作
  • 自动归档:自动打包构建产物
  • 进度提示:清晰的部署进度和结果反馈

快速开始

环境要求

  • Node.js 18.19.1(项目使用 .nvm 管理)
  • pnpm
  • SSH 访问权限(配置 ipadbiz-inner 别名)

部署命令

# 单环境部署
pnpm deploy:dev      # 部署到开发环境
pnpm deploy:oa       # 部署到 OA 环境
pnpm deploy:behalo   # 部署到 Behalo 环境

# 或者使用脚本直接调用
./deploy/deploy.sh dev
./deploy/deploy.sh oa
./deploy/deploy.sh behalo

# 多环境部署
./deploy/deploy.sh dev oa           # 部署到开发和 OA 环境
./deploy/deploy.sh dev oa behalo    # 部署到所有环境

环境说明

环境名称 服务器路径 访问地址 说明
dev /opt/space-dev/f http://oa-dev.onwall.cn 开发环境
oa /opt/oa/f http://oa.onwall.cn OA 环境
behalo /opt/behalo/f http://behalo.onwall.cn Behalo 环境

部署流程

1. 检查环境
   ↓
2. 确认部署环境(交互式)
   ↓
3. 执行构建 (pnpm build)
   ↓
4. 创建归档 (mlaj.tar.gz)
   ↓
5. 上传归档到服务器
   ↓
6. 远程解压部署
   ↓
7. 清理归档文件
   ↓
8. 显示访问地址

文件结构

deploy/
├── README.md        # 本文档
├── config.sh        # 环境配置文件
└── deploy.sh        # 主部署脚本

config.sh

环境配置文件,定义了每个环境的:

  • 服务器信息(SSH 别名)
  • 远程部署路径
  • 构建命令和产物目录
  • 备份配置
  • 健康检查配置(预留)
  • 通知配置(预留)

配置结构

# 每个环境对应一个配置函数
deploy_config_dev() {
    export PROJECT_NAME="mlaj"
    export SERVER_HOST="ipadbiz-inner"
    export REMOTE_DEPLOY_DIR="/opt/space-dev/f"
    export BUILD_DIR="dist"
    export BUILD_COMMAND="pnpm build"
    # ...
}

deploy.sh

主部署脚本,负责:

  1. 检查必需命令(pnpm、ssh、scp、tar)
  2. 解析环境参数
  3. 加载对应环境配置
  4. 执行构建
  5. 创建并上传归档
  6. 远程解压部署
  7. 输出部署结果

添加新环境

  1. config.sh 中添加配置函数:
deploy_config_newenv() {
    export PROJECT_NAME="mlaj"
    export SERVER_HOST="your-ssh-alias"
    export REMOTE_DEPLOY_DIR="/path/to/deploy"
    export BUILD_DIR="dist"
    export BUILD_COMMAND="pnpm build"
    # ...其他配置
}
  1. config.shload_env_config() 函数中添加:
load_env_config() {
    case "$1" in
        # ...现有环境
        newenv)
            deploy_config_newenv
            ;;
        # ...
    esac
}
  1. deploy.sh 的提示信息中添加新环境名称

常见问题

Q: SSH 连接失败?

确保已配置 SSH 别名 ipadbiz-inner,在 ~/.ssh/config 中:

Host ipadbiz-inner
    HostName your-server-ip
    User your-username
    Port 22
    IdentityFile ~/.ssh/your-key

Q: 构建失败?

检查 Node.js 版本是否为 18.19.1:

nvm use 18.19.1

Q: 权限不足?

确保脚本有执行权限:

chmod +x deploy/deploy.sh
chmod +x deploy/config.sh

注意事项

  1. 部署前确认:脚本会在部署前要求确认,请仔细核对环境
  2. 构建时间:首次构建可能需要较长时间,请耐心等待
  3. 网络稳定:部署过程中请保持网络稳定
  4. 环境隔离:不同环境的配置相互独立,互不影响

维护者: 前端开发团队 最后更新: 2026-02-23