You need to sign in or sign up before continuing.
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