??gulp
是自動化構(gòu)建工具劫拢,可以配合各種插件做 js 壓縮嫌佑、css 壓縮、less 編譯迅箩、代碼檢查等溉愁,替代手工實現(xiàn)自動化工作:
- 構(gòu)建工具
- 自動化
- 提高效率用
??webpack
是文件打包工具,可以把項目的各種 js饲趋、css文件等打包合并成一個或多個文件拐揭,主要用于模塊化方案,預(yù)編譯模塊的方案
- 打包工具
- 模塊化識別
- 編譯模塊化代碼方案用
??Gulp
應(yīng)該和Grunt
比較奕塑。Gulp / Grunt
是一種工具堂污,能夠優(yōu)化前端工作流程。比如自動刷新頁面龄砰、combo盟猖、壓縮css、js寝贡、編譯less等等扒披。簡單來說,就是使用Gulp/Grunt
圃泡,然后配置你需要的插件碟案,就可以把以前需要手工做的事情讓它幫你做了。
??說到webpack
颇蜡,那還要說到 seajs / requirejs / browserify
价说。這四個都是JS模塊化的方案辆亏。其中 seajs / require
是一種類型,webpack/browserify
是另一種類型鳖目。
-
seajs / require
: 是一種在線"編譯" 模塊的方案扮叨,相當(dāng)于在頁面上加載一個CMD/AMD
解釋器。這樣瀏覽器就認(rèn)識了 define领迈、exports彻磁、module 這些東西。也就實現(xiàn)了模塊化狸捅。 -
webpack/browserify
: 是一個預(yù)編譯模塊的方案衷蜓,相比于上面 ,這個方案更加智能尘喝。沒用過browserify
磁浇,這里以webpack
為例。首先朽褪,它是預(yù)編譯的置吓,不需要在瀏覽器中加載解釋器。另外缔赠,你在本地直接寫JS衍锚,不管是AMD / CMD / ES6
風(fēng)格的模塊化,它都能認(rèn)識嗤堰,并且編譯成瀏覽器認(rèn)識的JS构拳。
??這樣就知道,Gulp
是一個工具梁棠,而webpack
是模塊化方案。Gulp
也可以配置seajs
斗埂、requirejs
甚至 webpack
的插件符糊。
AMD
與CMD
分別為模塊化規(guī)范-
requirejs
和seaJs
分別為實現(xiàn)規(guī)范的一種方案。-
在線編譯模塊方案:在工程中引入了
requirejs
呛凶,就相當(dāng)于加載了一個AMD解釋器男娄,使得在代碼中可以使用 define、exports漾稀、module 這些方法模闲,實現(xiàn)模塊化
-
在線編譯模塊方案:在工程中引入了
-
browserify
/webpack
-
預(yù)編譯模塊方案:在編譯過程中將
AMD
/CMD
/ES6
風(fēng)格的模塊化代碼編譯為js
文件,同時其他類型的靜態(tài)資源也可以被編譯成js
而模塊化地引入崭捍。
-
預(yù)編譯模塊方案:在編譯過程中將
gulp
:一種優(yōu)化前端工作流程的工具尸折,可以將一些人工完成的工作如合并、壓縮等自動化完成殷蛇。