# m-deplot-tsc
**Repository Path**: MaJXm21/m-deplot-tsc
## Basic Information
- **Project Name**: m-deplot-tsc
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-03-21
- **Last Updated**: 2021-03-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#
✨✨✨m-ssh-deploy✨✨✨
`m-ssh-deploy`是一个在没有`jenkins`或者其他大型部署系统下推荐使用的一款自动部署工具。能够简化手动部署流程,实现自动化过程,**打包**、**压缩**和**上传到服务器**一键执行。
部署出错、完成支持弹窗显示。

源码地址 https://gitee.com/MaJXm21/m-deplot-tsc
## 📌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`
## 📌 选择部署
实现`select`人性化配套,支持多环境

## 📌 参数要求 🔌
|参数|说明|类型|可选择|默认值|必传|
|---|---|---|---|---|---|
|name|项目名称|string|—|—|✔|
|choices|交互式选择列表,详细看下面 `choices`|array[object]|—|—|✔|
|deployList|配置列表,详细下面 `deployList`|array[object]|—|—|✔|
> `choices`和`deployList`长度必须一致,才能匹配得上
### choices
| 参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 |
| ----- | -------- | ------ | ------ | ------ | ---- |
| name | 选项名称 | string | — | — | ✔ |
| value | 选项的值 | string | — | — | ✔ |
### deployList
| 参数 | 说明 | 类型 | 可选择 | 默认值 | 必传 |
| ----------- | ---------------------------------------------------- | ------ | ------ | ------ | --------------------------------------- |
| VALUE | 对应的是 choices[].value 的值 | string | — | — | ✔ |
| SERVER_PATH | 服务器地如址 192.168.1.1 | string | — | — | `RUN_MODEL` === 3|4,必传 ✔ |
| SSH_USER | 服务器登录用户名 | string | — | — | 同上 |
| PASSWORD | 服务器登录密码 | string | — | — | 同上 |
| PATH | 需要上传的服务器目录地址 | string | — | — | 同上 |
| SCRIPT | 打包执行的命令比如 npm run build | string | — | — | `RUN_MODEL`=== 1|2|3,必传 ✔ |
| 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']` 打包和压缩