前端工程化之yeoman的使用 二

2021-10-07 22:12:25 字數 2979 閱讀 9047

前面對yeoman進行了初步的了解 前端工程化之yeoman的使用(一) ,接下來對yeoman進行擴充套件安裝自己的腳手架,以及遇到的問題進行記錄

效果新建模板

因為我這裡直接刪除generators資料夾了(可對照上篇文章的新建目錄結構部分)。所以files中的陣列直接就是generator

"files":[

],

新建根據公司專案分pc端和移動端分兩塊pcmobile用到的方法屬性等說明

copytplcopytpl(from,to,context,templateoption,copyoption)將模板複製到指定的目錄中(原始碼)

引數:from:模板目標源位址

to:要複製到的位址

context:需要傳遞給ejs模板的引數

templateoption:ejs模板引擎配置引數

copyoption:複製時引數配置

prompt():同plop一樣也是基於inquirer,故具體參考(inquirer )

邏輯場景:

詢問選擇pc還是移動端。如果是pc端,那麼就填寫專案名和是否新增一些功能等等,然後執行賦值以及複製到指定目錄

prompting詢問部分:

這裡加上async/await的目的就是為了同步,詢問完才能處理下面操作

async

prompting()

]).then

(async answer =>,,

,]))

}else})

}

writing()操作寫入部分

先對package.json操作。這裡有兩種方式,一種使用ejs模板(ejs用法)直接寫入,還有一種是使用extendjson去生成乙個package.json,我這裡使用ejs模板

-%

>

...省略

}

'pc') 尋找./templates下的pc資料夾下的內容

this

.fs.

copytpl

(this

.templatepath

('pc'),

this

.destinationpath

(this

.answer.projectname),,,})

解析

為了不去替換publicindex.html中的ejs,想著在package.json中用即使用templateoption中的delimiter屬性去替換會報錯,具體原因未知

所以titlebaseurl的傳遞是無奈之舉,vue中會有個public資料夾,其中的titleicon位址等,html-webpack-plugin暴露的預設值以及.env暴露的變數值

所以index.html改造一下接收字元

最後執行yo welink-cli的時候發現,以.開頭的檔案沒有複製出來。

具體得看copyoption這個引數的配置,其整合fast-glob

dot屬性:預設為false:即以點開頭的檔案會被忽略。

而根據原始碼

可以看到最後copytpl呼叫的是copy,而其中copyoptions其中還包有乙個物件層globoptions。基本的複製算完了

效果新建乙個名為test的資料夾,然後在該資料夾下執行yo welink-cli

選擇專案型別

新建專案名(預設以當前資料夾作為專案名)

千里之行

始於足下

前端工程化 yeoman使用

1.前端工程化是遵循一定的標準和規範,通過工程去提高效率和較低成本的一種手段。2.解決問題 1.使用es6 新特性,相容性問題 2.使用less sass postcss增加css程式設計性,執行環境問題 3.使用模組化方式提高專案可維護性,執行環境問題 4.部署上線前需要手動壓縮 及資源檔案,部署...

前端工程化 Yeoman

什麼是yeoman yeoman是乙個前端構建工具。它整合了yo yeoman gulp grunt和npm bower等工具,組成了乙個完整的工具集合,為前端開發提供了一套完整的解決方案。yeoman能為我們做什麼 在專案中使用yeoman可以幫助開發人員在搭建應用的基礎結構 進行任務構建和其他輔...

前端工程化

為什麼出現了前端工程化?09年之前,我們學習的css,div,js只是對頁面設計進行乙個打輔助的功能,當時只能勉強的成為頁面設計師,為什麼會出現前端工程師 1.突然間前端的需求逐漸增多,使用者對介面的要求越來越高,前端範疇越來越大。2.前後端總是保持一致才能進行開發,不能分開開發,提出前端工程化,也...