@cpillar/quick-deploy
v0.0.0
Published
快速部署项目脚本
Readme
nginx-deploy 部署工具
这是一个用于自动化部署前端项目到 Nginx 服务器的工具。
功能特点
- 自动构建前端项目
- 通过 SSH 将构建产物部署到远程服务器
- 支持自定义配置文件
- 提供友好的命令行界面和彩色输出
安装
# 本地安装
npm install nginx-deploy -D
# 全局安装【建议】
npm install -g nginx-deploy使用方法
1. 创建配置文件
在前端项目根目录下创建一个名为 .deploy 的配置文件,包含以下内容:
npm run build
dist
[email protected]
/ssdata/server/nginx/html/x-chain2
22配置文件各行的含义:
- 第一行:构建命令(例如:
npm run build) - 第二行:构建后的 dist 目录路径(相对于项目根目录)
- 第三行:远程服务器的 SSH 用户和主机地址(例如:
[email protected]) - 第四行:远程服务器上的部署路径(例如:
/ssdata/server/nginx/html) - 第五行:SSH 端口号(例如:
22)
2. 执行部署
在项目根目录下运行:
nginx-deploy3. 使用自定义配置文件
如果您想使用不同的配置文件,可以通过 -c 参数指定:
nginx-deploy -c .deploy24. 查看帮助
nginx-deploy -h使用示例
示例 1:使用默认配置文件
- 在项目根目录创建
.deploy文件:
npm run build
dist
[email protected]
/ssdata/server/nginx/html
22- 执行部署:
nginx-deploy示例 2:使用自定义配置文件
- 在项目根目录创建
.deploy-production文件:
npm run build:prod
dist
[email protected]
/ssdata/server/nginx/html-prod
22- 执行部署:
nginx-deploy -c .deploy-production工作流程
- 读取配置文件
- 执行构建命令
- 验证构建产物是否存在
- 建立 SSH 连接
- 在远程服务器创建目标目录
- 通过 SCP 传输构建产物到远程服务器
- 关闭 SSH 连接
注意事项
- 确保本地可以正常执行构建命令
- 确保有权限访问远程服务器
- 确保远程服务器上的目标路径有写入权限
- 首次连接可能需要确认 SSH 主机密钥
- 在上传代码时,需要录入 SSH 服务密码,请确保您知道远程服务器的 SSH 登录密码
- 如果使用 SSH 密钥认证,请确保本地已正确配置 SSH 密钥
错误处理
脚本会在以下情况下报错并退出:
- 配置文件不存在
- 配置文件内容不完整
- 构建命令执行失败
- 构建产物目录不存在
- SSH 连接失败
- 文件传输失败
技术细节
- 使用 SSH 连接复用技术提高传输效率
- 支持彩色输出,便于区分信息类型
- 使用
set -e确保脚本在遇到错误时立即退出
