腳手架
是一個命令列工具,安裝對應的命令,通過這些命令執行一些操作,得到一些結果,幫我們快速地完成一些事情。
常用的腳手架工具
- vue-cli
- create-react-app
- webpack
- gulp
- grunt
為何要使用
- 減少重複性的工作,不在需要複製其他專案和刪除無關的程式碼,或者從零開始建立一個專案
- 根據互動情節動態生成專案結構和配置檔案
- 多人協作更加方便,不需要檔案傳來傳去
以vue-cli 腳手架使用舉例
npm install -g vue-cli
npm install -g cnpm --registry=https://registry.npm.taobao.org
vue -V|--version
vue list
vue init <template-name> <project-name>
複製程式碼
如何開發定製自己的一個腳手架呢?
思路
- 本地開發好,專案模板上傳到遠端git倉庫,腳手架命令釋出到npm官網
- 使用者通過npm安裝腳手架命令,根據命令列提示導向,從遠端git倉庫拉去對於的模板
開始
- 獲取命令列引數
- 原生方法:node index.js aa, 通過process.argv拿到陣列,再處理
- 藉助第三方庫: commander
- 命令對映
- 常規:node index.js執行指令碼
- 使用npm link對映,在package.json檔案bin欄位增加命令,如下,就可以使用lv命令了
- #!/usr/bin/env node 使用node開發命令列工具所執行的js指令碼,必須在頂部加入該行程式碼
{ ..., "bin": { "lv": "./index.js" } } 複製程式碼
- 試著搞一個xiaowu-cli吧
- git倉庫新建兩個模板專案
- 命令列引數設計
- xiaowu --help
- xiaowu -V|version
- xiaowu list
- xiaowu init
- 命令列互動
- inquirer提示使用者進行輸入的對話方塊,類似與window.prompt()
- 視覺美化
- ora命令皮膚互動效果,相當於loading效果
- chalk改變輸入文字樣式 target="_blank">chalk改變輸入文字樣式
- log-symbols各種日誌級別的彩色的符號
- 下載使用者模板到本地
- download-git-repo 是用來clone遠端倉庫程式碼到本地的包
- 根據使用者輸入,更新package.json資訊(如專案名,作 者,專案描述)
- handlebars 模板處理
- Node.js的fs模組,進行讀寫操作
- npm釋出(關鍵幾步)
- npm官網檢索下你的package.json檔案的name包名是否有重名
- 登入npm賬戶
npm login 複製程式碼
- 釋出(專案根目錄)
npm publish 複製程式碼
- 如何使用
npm i -g lvxaiowu-cli lv list lv init tpl-a abc 複製程式碼