代码拉取完成,页面将自动刷新
m-ssh-deploy
是一个在没有jenkins
或者其他大型部署系统下推荐使用的一款自动部署工具。能够简化手动部署流程,实现自动化过程,打包、压缩和上传到服务器一键执行。
部署出错、完成支持弹窗显示。
源码地址 https://gitee.com/MaJXm21/m-deplot-tsc
1.安装
先设置为npm源
npm config set registry http://registry.npmjs.org/
npm i m-ssh-deploy -D
2.在项目任意位置创建一个 deploy.js文件
const deploy = require('m-ssh-deploy').default
const deployConfig = {
name: '某某项目名称', // 部署名称
// 选择列表
choices: [
{
name: '测试环境',
value: 'development',
},
{
name: '测试环境(debug)',
value: 'development:debug',
},
],
// 配置列表
deployList: [
{
VALUE: 'development', // 提供选择,跟choices的value
SERVER_PATH: '192.168.100.100', // ssh地址 服务器地址
SSH_USER: 'root', // ssh 用户名
PASSWORD: 'root', // 用密码连接服务器
PATH: '/home/app/dist', // 需要上传的服务器目录地址 如 /usr/local/nginx/html
SCRIPT: 'npm run build:prod',
ASSETS_PATH: 'dist', // 打包完后的目录
SERVER_CMD: ['ls'], // 自定义在服务器上执行的指令,从左到右执行
RUN_MODEL: 3, // 1:只打包 2:打包和压缩zip 3:打包、压缩zip、上传服务器 默认是3
},
{ ... }
],
}
deploy(deployConfig) // 运行
3.在package.json的scripts
增加一个"deploy":"node ./deploy.js"
{
...,
"scripts": {
...,
"deploy": "node ./deploy.js"
}
...
}
4.运行
npm run deploy
实现select
人性化配套,支持多环境
参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 |
---|---|---|---|---|---|
name | 项目名称 | string | — | — | ✔ |
choices | 交互式选择列表,详细看下面 choices
|
array[object] | — | — | ✔ |
deployList | 配置列表,详细下面 deployList
|
array[object] | — | — | ✔ |
choices
和deployList
长度必须一致,才能匹配得上
参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 |
---|---|---|---|---|---|
name | 选项名称 | string | — | — | ✔ |
value | 选项的值 | string | — | — | ✔ |
参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 |
---|---|---|---|---|---|
VALUE | 对应的是 choices[].value 的值 | string | — | — | ✔ |
SERVER_PATH | 服务器地如址 192.168.1.1 | string | — | — |
RUN_MODEL === 3 |
SSH_USER | 服务器登录用户名 | string | — | — | 同上 |
PASSWORD | 服务器登录密码 | string | — | — | 同上 |
PATH | 需要上传的服务器目录地址 | string | — | — | 同上 |
SCRIPT | 打包执行的命令比如 npm run build | string | — | — |
RUN_MODEL === 1 |
ASSETS_PATH | 项目打包后的静态资源目录 | string | — | — | 同上 |
SERVER_CMD | 自定义服务器指令,从左到右执行 | array[string] | — | — | — |
RUN_MODEL | 选择模式,1:只打包、2:打包压缩、3:打包压缩上传、4:自定义服务器指令 | number | 1,2,3,4 | — | ✔ |
指令名 | 说明 |
---|---|
builtIn:1 | 打包 |
builtIn:2 | 压缩 |
builtIn:3 | 上传 |
builtIn:5 | 连接服务器 |
这种方式只能在传模式(RUN_MODEL
)为4
的情况下使用,例如
SERVER_CMD: ['builtIn:1']
打包SERVER_CMD: ['builtIn:1', 'builtIn:2']
打包和压缩此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。