1. 代碼邏輯
1. 入口文件:bin-->deploy-->deploy.js
引入工具庫文件:
inquirer
child_process
ora
fs
path
request
miniprogram-ci
引入配置文件
./weixin
./config.json
1. 打包執(zhí)行命令:"deploy:mp-weixin": "node ./bin/deploy/deploy mp-weixin",
2. 執(zhí)行打包命令:npm run deploy:mp-weixin
3. 代碼走到./bin/deploy/deploy目錄下,在該腳本下可以拿到命令中的參數mp-weixin
4. 執(zhí)行腳本:
? ? 1.?命令控制臺:獲取版本、環(huán)境信息等: inquirer 獲取開發(fā)者打包要求
? ? 2.?獲取最后一次更新日志:execSync('git show -s --format=%s')
? ? 3.?打包:執(zhí)行打包命令exec(npm run build-${env}:${type}, {}, (err, stdout)=>{})
? ? 4.?上傳代碼到微信服務平臺:用miniprogram-ci 中upload執(zhí)行上傳
? ? 5.?發(fā)飛書提醒:
????獲取自定義機器人 webhook 地址: https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot
附:privateKey 獲取 公眾開放平臺,開發(fā)->開發(fā)管理->開發(fā)設置【生成之后一定要保存】
2.??依賴包
1. ora:
????優(yōu)雅的終端旋轉器
????http://www.npmdoc.org/orazhongwenwendangora-jszhongwenjiaochengjiexi.html
????用法
import ora from 'ora';
const spinner = ora('Loading unicorns').start();
setTimeout(() => {
? ? spinner.color = 'blue';
? ? spinner.text = 'Loading unicorns';
}, 1000);
2.? fs:
????讀取文件、寫入文件、復制文件、刪除文件等。通過npm安裝Node.js后,可以直接在代碼中使用fs模塊來進行文件系統(tǒng)的操作。
3.? Path:
??文件路徑模塊: https://blog.csdn.net/COCOLI_BK/article/details/109182793
?4.? request:
????npm request 是一個流行的 Node.js 模塊,用于發(fā)起 HTTP 請求。它提供了簡潔的 API,使得在 Node.js 中發(fā)送 HTTP 請求變得非常方便。
????使用 npm 安裝 request 模塊后,我們可以在代碼中引入它,并使用它提供的方法來發(fā)送 GET、POST、PUT、DELETE 等類型的請求。例如,我們可以使用 request.get() 方法發(fā)送 GET 請求,使用 request.post() 方法發(fā)送 POST 請求。
????request 模塊還提供了許多可選的參數和回調函數,以便我們可以自定義請求的各個方面,例如設置請求頭、發(fā)送請求體、處理響應等。
????總之,npm request 是一個非常實用的模塊,可以幫助我們在 Node.js 中輕松地發(fā)送 HTTP 請求,并處理響應數據。
?5. child_process
????child_process模塊是nodejs的一個子進程模塊,可以用來創(chuàng)建一個子進程,并執(zhí)行一些任務。執(zhí)行一些什么任務呢?shell命令知道吧,有了child_process模塊,就可以直接在js里面調用shell命令去完成一些非??犰诺牟僮髁耍?!
舉個栗子,GitHub、碼云等git代碼托管網站,都會有個webHook功能,當push了新的代碼后,服務器可以開辟一個接口去接受這個webHook的請求,并進行git pull、npm run build等命令,從而達到自動化部署的目的!
????https://blog.csdn.net/qq1195566313/article/details/132797154
創(chuàng)建子進程:Nodejs創(chuàng)建子進程共有7個API Sync同步API 不加是異步API
spawn 執(zhí)行命令
exec執(zhí)行命令
execFile 執(zhí)行可執(zhí)行文件
fork 創(chuàng)建node子進程
execSync執(zhí)行命令 同步執(zhí)行
execFileSync 執(zhí)行可執(zhí)行文件 同步執(zhí)行
spawnSync 執(zhí)行命令 同步執(zhí)行
6.? miniprogram-ci
miniprogram-ci 是從微信開發(fā)者工具中抽離的關于小程序/小游戲項目代碼的編譯模塊。
使用前需要使用小程序管理員身份訪問"微信公眾平臺-開發(fā)-開發(fā)設置"后下載代碼上傳密鑰,并配置 IP 白名單,才能進行上傳、預覽操作。