寫在最前面
隨着公司業務的發展,獨立的系統也慢慢多了起來,腳手架的必要性也日趨明顯。vue
基於此,便開始搭起了腳手架,主要解決兩個問題:node
代碼地址點這裏,能夠照着代碼再去看這篇文章會以爲更有思路一點react
1.全局按裝git
npm install zn-cli -g
2.建立實例github
zn-cli init [templateType] [projectName]
ps:npm
templateType: 模板類型(暫時支持Vue和react的標準模板,後期會陸續支持後臺版本,相似於antdPro)json
projectName: 你須要建立的項目實例名稱安全
3.更新腳手架中的公共文件antd
在你的項目實例中執行:測試
npm run update
安全性:首先,這個操做是不會覆蓋你的業務代碼,只會去更新根目錄下public文件夾裏的文件
可選性:每一個版本更新的公共文件都會在腳手架的文檔中說明,你能夠選擇你須要的功能對應的版本(後續再講)
1.分支
master:腳手架代碼,全局安裝的就是這個玩意,用來拉去對應模板生成react/vue實例的,經過npm安裝使用
template分支:分支名template開頭的都是模板分支。我這裏就不一一列舉了,由於分支會陸續的添加,腳手架裏都會說明
test分支:測試分支,用來測試一些功能或者模板用的(可忽略)
2.腳手架實現
核心代碼是在bin目錄裏,index.js爲入口,點開index,能夠看到,主要是對node版本作了判斷,而後底部引入了cli.js,在看這些代碼以前,首先得閒肯定你是對如下幾個node包是瞭解的:
其餘有一些包是輔助類的,好比chalk,ora等,不瞭解也不要緊。
先看代碼:
大體流程:
基本腳手架就是這個流程,根據用戶輸入去拉去對應的模板代碼到指定的目錄。
可能你注意到在模板下載完成時我執行了一個進程:
spawn('rm', ['-rf', `${name}/build.js`]);
刪除建立的項目中的build.js文件,爲何,由於這個js是用來更新模板,就像上面我說到的執行npm run update
的時候就是經過這個js去作處理的。顯然,他應該只存在於腳手架的模板中,而不該該出如今用戶的項目實例中。對於用戶而言,它是無用的。
以上就是一個簡單腳手架的實現方式,後期也會一直去更新和維護這個腳手架,公司如今新的項目就是基於這個腳手架去搭建的,由於公司如今的項目都是react寫的,因此Vue的功能暫時不支持,後期也會慢慢支持vue...