tq-simple-deploy 介绍
主要利用node 的 node-ssh 库 实现自动连接服务器 并将本地打包完成的 dist目录自动上传到指定服务器目录,在没有安装云效,需要多次发布远程的场景下可快速发布。
在需要堡垒机发布的场景下 可快速提升发布效率
命令解释
tq-simple-deploy init --config xxx.js
init 命令 主要 用于下载config模板 及 help.md 到执行命令的目录
--config 指定 config 文件名称 默认 deploy.config.js
tq-simple-deploy ng-init --config xxx.js
ng-init 命令 nginx 配置初始化 主要通过 配置文件中选项 生成nginx配置文件,上传至服务器 比重启nginx
--config 指定 config 文件名称 默认 deploy.config.js
tq-simple-deploy deploy --config xxx.js -z -c
deploy 命令主要用于发布
--config 指定 config 文件名称 默认 deploy.config.js
-z 是否开启压缩 默认不压缩 直接dist 目录上传 dist较小时可直接文件夹上传
-c 是否拷贝原有文件夹 默认不拷贝 直接删除 服务器上原有文件 如果开启 会先将原有文件夹复制为 xxx202107011109009 格式
属性解释 deploy.config.js
- local 本地目录 例如:path.resolve(__dirname, './dist')
- remote 远程服务器目录 例如:/mnt/fe-projects/fe-demo/dist
- clientConfig 连接服务器所需参数
- port ssh 端口 默认22
- host 服务器地址 xxx.xx.xx.xx
- username 用户名 root admin
- password 密码 xxxxxx
- nginx nginx远程 动态配置文件路径 例如: /etc/nginx/conf.d
- confName 动态配置文件名称 xxxx.cong 例如:test.conf
- port 部署的静态文件所用的端口
- isHistory 是否history 模式 history 模式下.cong文件下会添加 try_files $uri $uri/ /index.html;
- nginxComd nginx relaod 命令 例如: nginx -s reload 或者 /etc/nginx/sbin/nginx -s reload
- beforeDeploy 发布前钩子函数
- afterDeploy 发布后钩子函数
简单nginx 配置使用 示例
安装依赖
npm i @pfan/tq-simple-deploy -D
初始化指令
yarn tq-simple-deploy init
或
npx tq-simple-deploy init
会下载 deploy.config.js 模板
我们以 服务器 47.96.94.154 端口 8478 为模板填写如下
//发布部署相关配置
const path = require('path')
module.exports = {
local: path.resolve(__dirname, './dist'), //本地目录
remote: '/mnt/fe-projects/fe-demo5/dist',//远程服务器 目录 /mnt/fe-projects/fe-demo/dist
clientConfig: {
port: 22,//ssh 端口 默认22
host: '47.96.94.154',//服务器地址 xxx.xx.xx.xx
username: 'root',//用户名 root admin
password: 'Mm123456',//密码 xxxxxx
},
nginx:'/etc/nginx/conf.d',//nginx 动态配置文件路径
confName:'test5.conf',//动态配置文件名称
port:'8478',//静态文件 端口
isHistory:false,//是否history 模式
nginxComd:'nginx -s reload',//nginx relaod 命令 nginx 没有 配置到全局 类似 /etc/nginx/sbin/nginx -s reload
beforeDeploy: async (clint) => {
console.log("发布前钩子函数,这里可以暂时不写")
},
afterDeploy: async (clint) => {
console.log("发布后钩子函数,这里可以暂时不写")
}
}
执行
yarn tq-simple-deploy ng-init
或
npx tq-simple-deploy ng-init