webpack和gulp的區別是什麼?
這是一個前端面試經常會有的面試題,當然也是很多人的疑問,那下面就簡單說一下吧!
Gulp:
gulp 致力於
自動化和優化
你的工作流,它是一個自動化你開發工作中痛苦又耗時任務
的工具包。
側重於整體過程的控制管理。通過定義許多task來執行構建任務,使用起來更像是任務流。
因此他的任務定義和管理是webpack所沒有的。
特點:
- 任務定義和管理
- 基於文件 stream 的構建
工作流程:
Webpack:
webpack有人也稱之爲 模塊打包機 ,由此也可以看出webpack更側重於模塊打包。
我們可以把開發中的所有資源(js文件、css文件、圖片、字體等)都可以看成模塊。
最初webpack本身就是爲前端JS代碼打包而設計的,後來被擴展到其他資源的打包處理。
webpack是通過loader(加載器)
和plugins(插件)
對資源進行處理的。
根據entry
和模塊的依賴關係進行靜態分析,然後將這些模塊按照指定的規則生成對應的靜態資源。
webpack中對資源文件的處理是通過入口文件產生的依賴形成的,不會像gulp那樣,配置好路徑後,該路徑下所有規定的文件都會受影響。
特點:
- 按照模塊的依賴來構建文件
- 通過loader來支持不同模塊
工作流程:
結論:
gulp
通過stream
來構建應用,而在webpack
中bundle
由多個不同的chunk
組成,這樣通過緩存chunk
並比對修改可以達到更快速的編譯。配合code splitting
可將代碼分離到每個bundles/chunks
中實現按需加載。
Gulp | Webpack | |
---|---|---|
工作方式 | 基於流的自動化構建工具 | 基於入口和模塊的打包工具 |
核心概念 | 任務(task) |
入口(entry) 輸出(output) 加載器(loader) 插件(plugins) |
其實總結了一下可以看出 webpack
與 gulp
他們都是前端的構建
、管理
工具,但是他們的工作方式不同,實質上並沒有真正的可比性,只是針對某些方面,誰能更勝一籌而已。