在開發過程當中,尤爲是新開項目的時候,每每須要從新進行各類配置、甚至複製以往的代碼,爲了解決這種場景,就有了 CLI,想必你們平時都常常使用,好比 Vue 的vue-cli
,React 的 create-react-app
,這類工具存在的主要目的是:釋放雙手、加快項目開發進度。vue
本文就將介紹我如何根據咱們團隊內部的繁瑣場景編寫 CLI,從而加快項目開發速度。react
開發項目中最多見的非後臺管理系統莫屬了,若是你仔細觀察,就會發現大多數的後臺管理大同小異。git
就咱們團隊內部的後臺管理系統而言,每次新開項目時,咱們都須要進行如下操做:github
而每一個頁面其實也是大同小異:web
基於以上場景,我想到的解決方法就是編寫一個 CLI 工具,能夠一行命令實現如下功能:vue-cli
只有 CLI 天然是不夠的,還要搭配項目模板(template)使用。json
但要注意腳手架工具要與項目模板解耦,下面細講。app
建立一個 GitHub 組織存放項目模板,一個模板應該包含如下:工具
meta.jsoncode
根據項目自定義一些問題,好比:
template 文件夾
存放項目模板,初始化時根據用戶回答的問題,生成項目。
generator 文件夾
執行 CLI 命令時,由 CLI 調用,主要用來自定義一些問題、模板文件信息等。
主要命令:
init:
初始化項目,這時候會查詢項目模板列表,而後根據用戶所選的模板進行初始化(把項目模板下載到本地),而且生成一個template.json
記錄當前項目模板的名字,供後續使用
add、delete:
此命令需在生成後的項目中使用,會根據template.json
中的模板信息找到對應的 generator
目錄下的方法,執行對應的方法。
每一個團隊面臨的場景不同,若是你也想編寫一個本身的 CLI 工具,但願本文能給你提供一些思路。
若是有興趣能夠參考一下個人 CLI 實現:fa-cli,項目模板:fa-web-template
感謝觀看。