用戶
 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,登錄網站

小程序社區 首頁 教程 查看內容

湖人vs骑士直播:從0到1開發一個小程序cli腳手架(三) --自定義命令

湖人vs爵士季后赛 www.nbgeh.club Rolan 2019-11-29 00:52

本文主要講述關于如何實現自定義命令 github地址:github.com/jinxuanzhen… 覺得有用的朋友幫忙給項目一個star,謝謝 系列內容,推薦從第一篇開始閱讀:從0到1開發一個小程序cli腳手架(一)--創建頁面/組件模版篇 ...


本文主要講述關于如何實現自定義命令 github地址:github.com/jinxuanzhen… 覺得有用的朋友幫忙給項目一個star,謝謝

系列內容,推薦從第一篇開始閱讀:
從0到1開發一個小程序cli腳手架(一)--創建頁面/組件模版篇
從0到1開發一個小程序cli腳手架(二) --版本發布/管理篇
從0到1開發一個小程序cli腳手架(三) --自定義命令

背景

在寫不同湖人vs爵士季后赛的時候,突然發現每個小程序面臨的場景和需求或多或少會有些差異化,比如說程序A會有生成doc的功能,程序B會有開啟數據埋點的debug模式等等

為了保證腳手架的通用性,我們并不能將這些差異化的功能一一實現,這時候就需要讓用戶實現自定義了

準備工作

最好看過之前的兩篇文章并搭建過demo,
里面有介紹一些項目的結構,實現思路,第三方包使用相關的東西

開始

梳理大概流程

這里不多說了,老套路: config注冊方法 -> 腳手架路由讀取注冊方法 -> 執行回調函數

注冊自定義命令

既然是給開發者在實際項目中進行配置,那么自然在配置文件 xdk.config.js 文件中動手了,在配置文件中預留出一個口子,方便我們讀取配置文件時獲取json,因為開發者可能會注冊多個自定義命令,我這里字段類型直接給的數組類型

將字段customScripts配置好后,就開始配置自定義命令了,首先確定需要的屬性

  • [name], 命令名稱肯定是要的
  • [desc], 描述本質上可有可無,不影響功能,但是比較方便記憶
  • [callback], 輸入完命令之后要執行什么(回調函數主體)

大概是這個樣子,后續我會以生成sass文檔為例來寫一個自定義命令

讀取配置項

回到xdk-cli這個項目,找到入口文件index.js,
如果看過前面兩篇文章,會知道首先要配置路由,這里調用第三方包commander來解析命令

配置路由

這里先看第一行,我用了前綴 run <cmd> 來解析,也就是說我們使用的時候必須輸入xdk-cli run <cmd>,那么為什么不直接xdk-cli <cmd>呢?

主要是為擴展考慮,避免命名重復導致功能被覆蓋,而且自定義指令本質上只是xdk-cli腳手架諸多功能中的一項,放在第一層級實在有些不合時宜

有些情況下,不太清楚當前項目下的自定義命令都有哪些,可以直接xdk-cli -h查看

加裝方法

通過run 命令我們可以準確到達當前的action,接下來要做什么?

自然是執行自定義命令的回調,在執行之前我們可以給他加裝一系列方法,更利于去二次開發,我這里采用的是改變this指向的方法,將當前函數作用于綁定到originPrototype上

image.png

方法庫列表

我這里道導出了封裝好log的開啟子進程方法,log方法,還有交互命令行方法,當然也可以導出更多,主要看自己的需求

image.png

到這里為止,這樣一套流程就跑通了,下面我寫一個小例子

案例:生成sass文檔

可以看到我調用的子進程,和日志都是通過接口公開出來已經在腳手架進行過統一處理的方法,并沒有去多做事情

當然你也可以使用交互命令,讓自定義命令更加友好,例如:

配合package.json

可以在package.json的scripts里注冊命令,簡化我們的調用

直接可以簡寫為npm start

最后

這篇比較簡單,基本上只是針對回調方法做了包裝與回傳,目標是為了方便讓開發者去定制一些功能

到此為止,三篇文章下來整個小程序開發腳手架的大概邏輯和框架已經非常清晰明了,后續的話有可能會針對npm支持, 和npm包的開發模板進行更新,覺得有幫助的同學可以關注下~~

分享至 : QQ空間
收藏
原作者: 萩水 來自: 掘金
海南飞鱼彩票怎么玩法 省钱模式和赚钱模式的区别 开摄影器材赚钱吗 奔驰宝马游戏机免费玩 广东十一选五走势 云南11选5走势图基本走势云南体彩 爆米花地摊赚钱吗 博彩方法 天谕什么职业比较赚钱 网上买彩票什么平台可信 集资建房怎么赚钱 梦幻西游新区新区卖胚子赚钱吗 快三分分彩计划在线 那些网站图片处理可以赚钱 百度网盟 赚钱 捕鱼来了外挂苹果