webpack和gulp的區別

webpack和gulp的區別是什麼?
這是一個前端面試經常會有的面試題,當然也是很多人的疑問,那下面就簡單說一下吧!

Gulp:

gulp 致力於 自動化和優化 你的工作流,它是一個自動化你開發工作中 痛苦又耗時任務 的工具包。

側重於整體過程的控制管理。通過定義許多task來執行構建任務,使用起來更像是任務流。
因此他的任務定義和管理是webpack所沒有的。

特點:

  • 任務定義和管理
  • 基於文件 stream 的構建

工作流程:
gulp

Webpack:

webpack有人也稱之爲 模塊打包機 ,由此也可以看出webpack更側重於模塊打包。
我們可以把開發中的所有資源(js文件、css文件、圖片、字體等)都可以看成模塊。
最初webpack本身就是爲前端JS代碼打包而設計的,後來被擴展到其他資源的打包處理。
webpack是通過 loader(加載器)plugins(插件) 對資源進行處理的。

根據entry和模塊的依賴關係進行靜態分析,然後將這些模塊按照指定的規則生成對應的靜態資源。
webpack中對資源文件的處理是通過入口文件產生的依賴形成的,不會像gulp那樣,配置好路徑後,該路徑下所有規定的文件都會受影響。

特點:

  • 按照模塊的依賴來構建文件
  • 通過loader來支持不同模塊

工作流程:
webpack
結論:
gulp通過stream來構建應用,而在webpackbundle由多個不同的chunk組成,這樣通過緩存chunk並比對修改可以達到更快速的編譯。配合code splitting 可將代碼分離到每個bundles/chunks中實現按需加載。

Gulp Webpack
工作方式 基於流的自動化構建工具 基於入口和模塊的打包工具
核心概念 任務(task) 入口(entry)
輸出(output)
加載器(loader)
插件(plugins)

其實總結了一下可以看出 webpackgulp 他們都是前端的構建管理工具,但是他們的工作方式不同,實質上並沒有真正的可比性,只是針對某些方面,誰能更勝一籌而已。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章