一般來說,腳手架是幫你減少「為減少重複性工作而做的重複性工作」的工具.
gulp和gulp-cli的區別可以看這個task – what does gulp-“cli” stands for? . 它跟前端常說的腳手架(scaffold)不是一個東西. CLI只是Command Line Interface的縮寫.
====
舉個例子
你要寫一個專案0,源語言為ES6,用了sass, 後端是node. 你每次完成一部分功能,你都要用把ES6編譯到ES5、編譯sass、壓縮html檔案.
每次修改程式碼都要做的編譯ES6、sass、壓縮html這些就是 重複性工作.
後來你知道了gulp, 然後你寫了個gulp指令碼,每次有程式碼改動,一句gulp build就幫你完成了上面說的這些重複性工作.你寫的gulp指令碼就是 為減少重複性工作而做的工作.
你寫完這個專案0之後,你又要寫專案1,還是ES6、sass、後端node,還要完成之前的那些重複性工作. 這個時候你又為了這個專案寫了一個類似gulp指令碼.
後來你又寫了專案2、專案3···,你每次都用相同的技術棧,每次的gulp指令碼都大同小異,這時候你發現,寫這麼多gulp指令碼也成了重複性工作. 這就是 為減少重複性工作而做的重複性工作.
而腳手架就可以幫你減少這些 為減少重複性工作而做的重複性工作. 腳手架一個命令,目錄結構、gulp指令碼、babel配置、空的測試檔案都幫你搞好了. 直接寫核心業務程式碼,不做重複性工作,這就是腳手架的作用.
當然一般不同的技術技術棧會有自己的目錄結構、工作流程,所以很多前端框架比如vue、angular、 ember會有自己的腳手架工具(一般就叫XXX-cli). yeoman也可以根據不同的生成器(generator)成為不同專案的腳手架工具.
作者:flowmemo
連結:https://www.zhihu.com/questio…
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。