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',
clientConfig: {
port: 22,
host: '47.96.94.154',
username: 'root',
password: 'Mm123456',
},
nginx:'/etc/nginx/conf.d',
confName:'test5.conf',
port:'8478',
isHistory:false,
nginxComd:'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
简单发布使用示例
堡垒机发布使用示例