背景介紹
一般而言,大多數框架都會提供Cli終端工具
,用於通過命令列
執行一些工具類指令碼
CabloyJS提供的Cli終端工具
卻與眾不同。更確切的說,CabloyJS提供的是Cli終端引擎
,由一套Cli終端執行機制
+眾多命令集
組成。CabloyJS是一個基於模組化體系的全棧框架,因此,命令集也由具體的模組提供。因此,我們可以通過安裝各種模組來動態新增可以執行的命令集,從而讓CabloyJS的Cli終端
變得無比強大、功能也無比豐富
特點
-
可無限擴充
:由於是通過安裝模組來提供命令集,因此可以無限擴充 -
同時支援
開發環境
和生產環境
:當我們在命令列輸入指令後,系統會自動呼叫後端服務的API介面,執行具體的指令碼邏輯。而後端服務既可以是在本地執行的開發服務,也可以是在遠端執行的生成環境 -
簡化
系統管理
和運維工作
:正是由於Cli終端
可以用於生產環境,所以許多後臺管理工作都可以通過API介面暴露出來,從而可以直接通過命令列進行驅動 -
完善的
許可權控制
:後端服務暴露的所有API介面都使用資源授權機制進行控制,Cli終端
通過開放認證Token
進行受控訪問
如何使用
Cli終端
的使用規範如下:
$ npm run cli [command] [args] -- [options]
- command
命名規範:
由於command由業務模組提供,為了進一步規範管理,在業務模組內部還將提供的commands進行分組。因此,command命名規範如下:
moduleName:groupName:commandName
比如,模組a-clibooster
提供了一個分組create
,分組create
提供了一個module
命令,那麼,完整的command命名就是:a-clibooster:create:module
-
特殊約定:
為了簡化command的輸入,特別做了如下約定:-
如果模組名稱是
a-clibooster
,則可以不輸入 -
如果分組名稱是
default
,則可以不輸入
-
舉例如下:
全稱 | 簡稱 |
---|---|
a-clibooster:default:list | ::list |
a-clibooster:create:module | :create:module |
test-party:default:demo | test-party::demo |
- args
命令後是否可以跟隨引數,跟隨多少引數,由具體的命令決定,例如:
# 安裝模組test-flow和test-note
$ npm run cli :store:sync test-flow test-note
- options
命令後是否可以跟隨選項,跟隨多少選項,也由具體的命令決定,例如:
# 向套件test-suite1新增模組test-module1
$ npm run cli :create:module test-module1 -- --suite=test-suite1
- help
如果我們不知道如何使用某個命令,可以直接列印出幫助資訊,例如
$ npm run cli :create:module -- --help
- version
還可查詢某個命令的版本號,例如:
$ npm run cli :create:module -- --version
- 列出命令
如果要查詢當前系統一共支援多少命令,可以按如下操作:
# 列出所有命令
$ npm run cli ::list
# 列出模組test-party提供的命令
$ npm run cli ::list -- --module=test-party
# 列出模組a-clibooster內create分組提供的命令
$ npm run cli ::list -- --module=a-clibooster --group=create
內建命令
CabloyJS通過模組a-clibooster
內建了大量常用的命令,具體如下:
命令 | 描述 |
---|---|
::list | 列出所有命令 |
:token:add | 新增開放認證Token |
:token:delete | 刪除開放認證Token |
:token:list | 列出所有開放認證Token |
:tools:babel | 編譯JS檔案 |
:tools:icons | 處理圖示模組 |
:create:suite | 新建套件 |
:create:module | 新建模組 |
:create:atom | 新建原子型別 |
:create:controller | 新建控制器(包括Route、Controller、Service一套檔案) |
:store:sync | 安裝來自Cabloy商店的套件/模組 |
:store:publish | 將本地開發的套件/模組 釋出到Cabloy商店 |
簡寫命令
CabloyJS還提供了更多簡寫命令,可以親自體驗一番,一定會顯著提升開發效率
$ npm run cli
$ npm run cli :
$ npm run cli ::
$ npm run cli :default:
$ npm run cli :create:
$ npm run cli test-party:
$ npm run cli test-party::
$ npm run cli test-party:default:
如何建立Cli命令
如果我們想建立自己的Cli命令,也非常簡便,參見文件:如何建立Cli命令