前面對yeoman進行了初步的了解 前端工程化之yeoman的使用(一) ,接下來對yeoman進行擴充套件安裝自己的腳手架,以及遇到的問題進行記錄效果新建模板
因為我這裡直接刪除generators
資料夾了(可對照上篇文章的新建目錄結構部分)。所以files
中的陣列直接就是generator
:
"files":[
],
新建根據公司專案分pc
端和移動端分兩塊pc
和mobile
用到的方法屬性等說明
copytpl
:copytpl(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),,,})
解析
為了不去替換public
中index.html
中的ejs
,想著在package.json
中用?
即使用templateoption
中的delimiter
屬性去替換會報錯,具體原因未知
所以title
和baseurl
的傳遞是無奈之舉,vue
中會有個public
資料夾,其中的title
和icon
位址等,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.前後端總是保持一致才能進行開發,不能分開開發,提出前端工程化,也...