淺談前端常用腳手架cli工具及案例
- 2021 年 1 月 26 日
- 筆記
前端常用腳手架工具
前端有很多特定的腳手架工具大多都是為了特定的項目類型服務的,比如react項目中的reate-react-app,vue項目中的vue-cli,angular
項目中的angular-cli根據一些資訊創建對應的項目基礎結構,只適用於對應的項目,還有一些對應的項目腳手架工具比如Yeoman。
根據模板生成對應的結構,比較靈活,容易拓展,還有一種腳手架工具plop,例如創建一個組建/模組所需要的文件.
一.Yeoman簡介
Yeoman是一款最老牌最通用的腳手架工具,基於node.js開發的工具模組,是一款創建現代化應用的腳手架工具,不同於vue-cli這樣
的工具,Yeoman更像是一個腳手架的運行平台,通過不同的Generator搭建屬於自己的腳手架。
Yeoman的基本使用
首先,檢查下node環境,另外個人感覺yarn的用戶體驗更加好一點,後續我們使用yarn代替npm去安裝確保電腦上有node和yarn.
具體安裝步驟如下:
yarn global add yo (yo就是工具模組的名字)
yarn global add generator-node //必須要搭配對應的Generator去使用
mkdir my-module (找到合適的文件夾)
cd my-module
yo node (運行特定的generator,把前面generator-去掉)
如上圖所示文件夾中生成了基礎的項目結構以及接觸的項目程式碼.
Sub Generator
有時候我們並不需要創建完整的項目結構,可能我們只是在已有的項目結構上創建項目文件,比如在原有基礎上新增eslint功能,我們
可以用生成器幫我們生成,這樣會提高我們的效率,我們可以用
Yeoman提供的一些特性
比如添加一個cli應用,可以執行yo node:cli命令(命名方式為yo genrator:sub genrator)如下圖所示,提供了一些基礎的程式碼結構,
有了這個我們就可以把它當成個全局的命令行模組使用了,下面執行yarn link到全局範圍,然後執行yarn安裝依賴,把所需要的依賴
安裝進來,執行my-module –help就可以看到sub generator特性.
綜上所述,Yemon的使用步驟
1.明確你的需求
2.找到合適的Generator
3.全局範圍內安裝找到的Generator
4.通過Yo運行對應的Generator
5.通過命令行交互填寫選項
6.生成你所需要的項目結構
創建一個自定義的Generator模組
Generator本質上就是一個npm模組,Generator有一個固定的結構,裡面有一個generators的目錄,下面有個app的文件夾生成對應文件的程式碼,
如果需要多個sub Generator,例如添加一個component目錄,那麼我們的模組就生成了一個component的子生成器,如下圖所示:
yemon的生成器名稱必須是generator-<name>的名稱
下面按照具體步驟創建一個generator自定義模組,
1.創建空一個文件夾generator-sample
2.通過yarn init創建一個package.json
3.運行yarn add yeoman-generator 創建一個積類,裡面很多方法讓我們後續更加便捷
4.創建如下圖所示的generators/app/index.js文件
5.yarn link 鏈接到全局範圍 使之成為全局模組
6.另外創建一個空文件夾,運行yo sample 發現創建了temp.txt
根據模板創建文件
很多時候自動創建的文件有很多,也比較複雜,我們可以使用模板去創建文件,我們使用模板創建可以大大提高效率
具體步驟如下:
1.在app文件夾下創建templates/foo.txt
2.修改index.js程式碼 如下圖所示
3.在新文件夾 運行yo sample
接收用戶輸入
像一些動態的數據,在generator中想要發起一個命令行交互的詢問,可以通過實現promit方法實現
具體步驟如下:
1.在app文件夾下創建templates/bar.html
2.修改index.js程式碼如下圖所示
3.在新文件夾 運行yo sample (備註:my-project為自定義)
Vue Generator案例
下面我們自定義一個有基礎程式碼的vue腳手架,首先創建項目結構,生成一個generator,用於生成項目結構,如下圖所示:
具體步驟如下:
1.makdir generator-namelw (合適路徑創建目錄)
2.yarn init (生成package.json)
3.yarn add yeoman-generator (安裝yeoman依賴)
4.創建目錄機構如下圖所示
5.修改app/index.js程式碼如下圖所示:
6.yarn link (link到全局)
7.在新文件夾 運行yo lwname
二.plop簡介
plop是一款創建文件項目中特定類型的小腳手架工具,有點像Yeomon中的sub generator一般不會獨立去使用,一般會把plop集成到
項目中,去自動化的創建同類型的項目文件.
plop的具體使用
1.首先安裝依賴yarn add plop –dev
2.根目錄下新建plopfile.js文件(plop的入口文件)
3.根目錄下創建plop-templates/component.hbs文件
4.yarn plop component
三.腳手架的工作原理
用node.js開發一個小型的腳手架工具,體會下工作流程(由於都差不多,我只寫步驟,有需要自己去搭建下就好)
1.makdir sample-nodecli
2.cd sample-nodecli
3.yarn init 生成package.json欄位
4.package.json裡面添加bin欄位 “bin”:”cli.js”
5.根目錄下創建cli.js //如下圖所示
6.yarn link
7.yarn add inquirer
8.創建模板templates/index.html
9.yarn add ejs 通過模板引擎去渲染對應的文件
10.空文件夾運行sample-nodecli