TS+Node 構建前端一鍵部署工具


工具地址

「cbd-deploy-cli」:

功能概覽

具體的用法指導 「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
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM