🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## m-ssh-deploy 地址:https://www.npmjs.com/package/m-ssh-deploy `m-ssh-deploy`是一个在没有`jenkins`或者其他大型部署系统下推荐使用的一款自动部署工具。能够简化手动部署流程,实现自动化过程,**打包**、**压缩**和**上传到服务器**一键执行。 部署出错、完成支持弹窗显示。 [![部署过程](https://camo.githubusercontent.com/d824018288e14bc5b38b79253b14fce2f9bb92a28931626f954aef7e5d0cef8c/68747470733a2f2f6d616a786d32312e67697465652e696f2f6d6a785f626c6f672f6173736574732f696d672f6465706c6f792e34356562346130382e676966)](https://camo.githubusercontent.com/d824018288e14bc5b38b79253b14fce2f9bb92a28931626f954aef7e5d0cef8c/68747470733a2f2f6d616a786d32312e67697465652e696f2f6d6a785f626c6f672f6173736574732f696d672f6465706c6f792e34356562346130382e676966) 源码地址[https://gitee.com/MaJXm21/m-deplot-tsc](https://gitee.com/MaJXm21/m-deplot-tsc) ## [](https://www.npmjs.com/package/m-ssh-deploy#dome-%E6%A0%B7%E5%BC%8F-)📌Dome 样式🍐 1.安装 先设置为npm源`npm config set registry http://registry.npmjs.org/` `npm i m-ssh-deploy -D` 2.在项目任意位置创建一个**deploy.js**文件 ~~~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"` ~~~json { ..., "scripts": { ..., "deploy": "node ./deploy.js" } ... } ~~~ 4.运行 `npm run deploy` ## [](https://www.npmjs.com/package/m-ssh-deploy#-%E9%80%89%E6%8B%A9%E9%83%A8%E7%BD%B2)📌选择部署 实现`select`人性化配套,支持多环境 [](https://www.npmjs.com/package/m-ssh-deploy) ## [](https://www.npmjs.com/package/m-ssh-deploy#-%E5%8F%82%E6%95%B0%E8%A6%81%E6%B1%82-)📌参数要求🔌 | 参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 | | --- | --- | --- | --- | --- | --- | | name | 项目名称 | string | — | — | ✔ | | choices | 交互式选择列表,详细看下面`choices` | array\[object\] | — | — | ✔ | | deployList | 配置列表,详细下面`deployList` | array\[object\] | — | — | ✔ | > `choices`和`deployList`长度必须一致,才能匹配得上 ### [](https://www.npmjs.com/package/m-ssh-deploy#choices)choices | 参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 | | --- | --- | --- | --- | --- | --- | | name | 选项名称 | string | — | — | ✔ | | value | 选项的值 | string | — | — | ✔ | ### [](https://www.npmjs.com/package/m-ssh-deploy#deploylist)deployList | 参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 | | --- | --- | --- | --- | --- | --- | | 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 | — | ✔ | ### [](https://www.npmjs.com/package/m-ssh-deploy#%E5%86%85%E7%BD%AE%E6%8C%87%E4%BB%A4)内置指令 | 指令名 | 说明 | | --- | --- | | builtIn:1 | 打包 | | builtIn:2 | 压缩 | | builtIn:3 | 上传 | | builtIn:5 | 连接服务器 | # [](https://www.npmjs.com/package/m-ssh-deploy#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F)使用方式 这种方式只能在传模式(`RUN_MODEL`)为`4`的情况下使用,例如 * `SERVER_CMD: ['builtIn:1']`打包 * `SERVER_CMD: ['builtIn:1', 'builtIn:2']`打包和压缩