## m-ssh-deploy
地址:https://www.npmjs.com/package/m-ssh-deploy
`m-ssh-deploy`是一個在沒有`jenkins`或者其他大型部署系統下推薦使用的一款自動部署工具。能夠簡化手動部署流程,實現自動化過程,**打包**、**壓縮**和**上傳到服務器**一鍵執行。
部署出錯、完成支持彈窗顯示。
[](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
- 一些開放問題、智力題