Gulp應該和Grunt比較,他們的區(qū)別我就不說了刽辙,說說用處吧甲献。Gulp / Grunt 是一種工具宰缤,能夠優(yōu)化前端工作流程。比如自動刷新頁面晃洒、combo慨灭、壓縮css、js球及、編譯less等等氧骤。簡單來說,就是使用Gulp/Grunt吃引,然后配置你需要的插件筹陵,就可以把以前需要手工做的事情讓它幫你做了刽锤。
說到 browserify / webpack ,那還要說到 seajs / requirejs 朦佩。這四個都是JS模塊化的方案并思。其中seajs / requirejs 是一種類型,browserify / webpack 是另一種類型语稠。
seajs / requirejs : 是一種在線"編譯" 模塊的方案宋彼,相當于在頁面上加載一個 CMD/AMD 解釋器。這樣瀏覽器就認識了 define仙畦、exports输涕、module 這些東西。也就實現(xiàn)了模塊化慨畸。
browserify / webpack : 是一個預編譯模塊的方案莱坎,相比于上面 ,這個方案更加智能寸士。沒用過browserify檐什,這里以webpack為例。首先碉京,它是預編譯的厢汹,不需要在瀏覽器中加載解釋器螟深。另外谐宙,你在本地直接寫JS,不管是 AMD / CMD / ES6 風格的模塊化界弧,它都能認識凡蜻,并且編譯成瀏覽器認識的JS。
這樣就知道垢箕,Gulp是一個工具划栓,而webpack等等是模塊化方案。Gulp也可以配置seajs条获、requirejs甚至webpack的插件忠荞。
不知道這樣夠清楚了么
Gulp、Grunt和Make(常見于c/cpp)帅掘、Ant委煤、Maven、Gradle(Java/Android)修档、Rake碧绞、Thor(Ruby)一樣,都是是Task Runner吱窝。用來將一些繁瑣的task自動化并處理任務的依賴關系讥邻。
其中有些是基于配置描述的迫靖,描述邏輯比較費勁,比如Ant基于xml兴使。還有些就是代碼系宜,比較靈活,個人偏好這種鲫惶。比如Rake蜈首、Thor、Gulp欠母、Gradle欢策。對于Gradle來說也有些蛋疼。因為它本身是Groovy的DSL赏淌。如果要深入使用踩寇,你還得學一下Groovy語言。其他就好多了Rake六水、Thor就是寫Ruby俺孙;Gulp就是JavaScript。相對門檻低很多掷贾。
模塊化解決方案:
BrowserifyIt provides a way to bundle CommonJS modules together, adheres to the Unix philosophy(小工具協(xié)作), is in fact a good alternative to Webpack.
Webpack?takes a more monolithic(整體解決睛榄、大而全) approach than Browserify... is relies on configuration.
webpack官網(wǎng)有對二者的使用方法進行對比,可以看一下:webpack for browserify users
上面這些工具在功能上有交集:代碼的Minify想帅、Concat场靴;資源預處理等;