淺談前端常用腳手架cli工具及案例

メSerendipity發表於2021-01-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

相關文章