工具地址
「cbd-deploy-cli」:
- GitHub: github.com/Hyattria/cb…
- Npm: www.npmjs.com/package/cbd…
功能概覽
具體的用法指導 「README.md」 有詳細的描述,這里簡單地介紹一下:
安裝
- 全局安裝
npm install cbd-deploy-cli -g
復制代碼
- 本地安裝
npm install cbd-deploy-cli --save-dev
復制代碼
初始化
cbd-deploy-cli init
復制代碼
「init」 之后會根據用戶輸入的配置在當前目錄下生成 「develop.config.js」 文件,這里要注意以下幾點:
-
部署的環境包括 「dev」(測試環境) 和 「prod」(生產環境), 是多選
-
項目類型包括 「Web」 和 「Hybrid App」, 這是單選。「Web」 就相當於普通的應用就好,這應該是最普遍的場景。兩者生成的文件有略些差異,「Hybrid」 這里會包括「小程序」/「web」 以及 「Native App」三個平台,而且是在輸入部署命令后「相繼部署」,不需要再另外操作
-
Web App
-
Hybrid App

ps: 這里如果有朋友想使用這個工具,「Web App」 類型就足夠了,「Hybrid」主要是針對我本人現在工作的痛點添加的功能,如果有人跟我一樣的遭遇那真的是太幸運了。
配置文件
輸入 「init」 命令后生成了配置文件,這里還是推薦自己手動編輯,因為如果是「Hybrid」項目類型會有很多輸入。
- Web App
// deploy.config.js module.exports = { "projectName": "cbd-deploy-cli", // 開發環境 "dev": { "name": "開發環境", // 環境名稱 "script": "npm run build", // 打包命令 "host": "localhost", // 服務器地址 "port": 22, // 服務器端口號 "username": "root", // 服務器登錄用戶名 "password": "", // 服務器登錄密碼 "privatekey": "xxxx/.ssh/id_rsa", // 服務器對應本地私鑰 // password | privatekey 選填一個就可以 "distpath": "dist", // 本地打包生成目錄 "webdir": "/", // 服務器部署路徑(不可為空或'/') "isremoveremote": false // 是否刪除遠程文件(這里是目錄刪除,請謹慎開啟,上傳解壓后會自動覆蓋) }, // 生產環境 "prod": { "name": "生產環境", "script": "npm run build", "host": "localhost", "port": 22, "username": "root", "password": "", "privatekey": "xxxx/.ssh/id_rsa", "distpath": "dist", "webdir": "/", "isremoveremote": false } } 復制代碼
- Hybrid App
module.exports = { "projectName": "cbd-deploy-cli", // 開發環境 "dev": { "name": "開發環境", // 這里注意一下區別 // 小程序 "mini": { "script": "npm run build", "host": "localhost", "port": 22, "username": "root", "password": "", "privatekey": "xxx/.ssh/id_rsa", "distpath": "dist", "webdir": "", "isremoveremote": false }, // web "web": { "script": "npm run build", "host": "localhost", "port": 22, "username": "root", "password": "", "privatekey": "xxx/.ssh/id_rsa", "distpath": "dist", "webdir": "", "isremoveremote": false }, // 原生 "native": { "script": "npm run build", "host": "localhost", "port": 22, "username": "root", "password": "", "privatekey": "xxx/.ssh/id_rsa", "distpath": "dist", "webdir": "", "isremoveremote": false } } } 復制代碼
部署
注意:命令后面需要加 --mode
環境對象 (如:--mode=dev
或者 --mode dev
)
cbd-deploy-cli deploy --mode=dev
復制代碼
程序會自動進行如下操作:
這時候,項目已經成功發送到服務器中,全程不超過10秒,是不是省下了好多時間。而在 「Hybrid」下更是明顯,三個平台「程序相繼發布」,一個命令敲完之后無需再做任何操作,三個平台即可部署完畢。
實現邏輯
這里簡單說下自己的實現邏輯,因為「Web」下的邏輯主要借鑒別人的,自己只是用「typescript」重新寫了一下后做了一些修改而已。但「Hybrid」是我在這些基礎上另外加的功能,做到了兩者的兼容。
這里不貼什么代碼,具體的實現可以直接在「GitHub」里看到,用流程圖簡單寫下整個功能的邏輯:

作者:夏天Summer
鏈接:https://juejin.cn/post/6876330440043692046
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。