## 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']`打包和压缩
- 首页
- 2021年
- 基础知识
- 同源策略
- 跨域
- css
- less
- scss
- reset
- 超出文本显示省略号
- 默认滚动条
- 清除浮动
- line-height与vertical-align
- box-sizing
- 动画
- 布局
- JavaScript
- 设计模式
- 深浅拷贝
- 排序
- canvas
- 防抖节流
- 获取屏幕/可视区域宽高
- 正则
- 重绘重排
- rem换算
- 手写算法
- apply、call和bind原理与实现
- this的理解-普通函数、箭头函数
- node
- nodejs
- express
- koa
- egg
- 基于nodeJS的全栈项目
- 小程序
- 常见问题
- ec-canvas之横竖屏切换重绘
- 公众号后台基本配置
- 小程序发布协议更新
- 小程序引入iconfont字体
- Uni-app
- 环境搭建
- 项目搭建
- 数据库
- MySQL数据库安装
- 数据库图形化界面常用命令行
- cmd命令行操作数据库
- Redis安装
- APP
- 控制缩放meta
- GIT
- 常用命令
- vsCode
- 常用插件
- Ajax
- axios-services
- 文章
- 如何让代码更加优雅
- 虚拟滚动
- 网站收藏
- 防抖节流之定时器清除问题
- 号称破解全网会员的脚本
- 资料笔记
- 资料笔记2
- 公司面试题
- 服务器相关
- 前端自动化部署-jenkins
- nginx.conf配置
- https添加证书
- shell基本命令
- 微型ssh-deploy前端部署插件
- webpack
- 深入理解loader
- 深入理解plugin
- webpack注意事项
- vite和webpack区别
- React
- react+antd搭建
- Vue
- vue-cli
- vue.config.js
- 面板分割左右拖动
- vvmily-admin-template
- v-if与v-for那个优先级高?
- 下载excel
- 导入excel
- Echart-China-Map
- vue-xlsx(解析excel)
- 给elementUI的el-table添加骨架
- cdn引入配置
- Vue2.x之defineProperty应用
- 彻底弄懂diff算法的key作用
- 复制模板内容
- 表格操作按钮太多
- element常用组件二次封装
- Vue3.x
- Vue3快速上手(第一天)
- Vue3.x快速上手(第二天)
- Vue3.x快速上手(第三天)
- vue3+element-plus搭建项目
- vue3
- 脚手架
- vvmily-cli
- TS
- ts笔记
- common
- Date
- utils
- axios封装
- 2022年
- HTML
- CSS基础
- JavaScript 基础
- 前端框架Vue
- 计算机网络
- 浏览器相关
- 性能优化
- js手写代码
- 前端安全
- 前端算法
- 前端构建与编译
- 操作系统
- Node.js
- 一些开放问题、智力题