一般來說,腳手架是幫你減少「為減少重復性工作而做的重復性工作」的工具.
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...
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
