webpack是一個打包工具。html
web pack讀取這些有依賴關係的模塊併產生一個用來表示這些模塊的靜態資源。
webpack
市面上的模塊打包工具對大型應用(大型單頁面應用)並不十分合適。所以急需開發出一款能夠經過模塊化將代碼拆分與靜態資源生成無縫結合在一塊兒的工具。
曾嘗試從現有工具擴展,但實難達到全部目標。git
將依賴樹拆分紅塊並按需加載github
短的初始化加載時間web
每一個靜態資源都能視做模塊segmentfault
引入第三方庫做爲模塊的能力異步
自定義打包工具的能力模塊化
適應大型項目工具
webpack的依賴樹中有同步與異步兩種類型。異步依賴行爲將做爲拆分點並生成一個新的區塊(chunk)。在區塊(chunk)樹優化好後,文件將被分發到每個區塊(chunk)中去。優化
詳見代碼拆分
webpack只處理JavaScript因此loaders被用來處理將各種資源轉換成JavaScript。由此全部的資源都能做爲模塊。
web pack 擁有的智能分析系統能夠處理幾乎全部的第三方庫。甚至容許在依賴中使用形如 require("./templates/" + name + ".jade")
的寫法。智能分析系統能夠處理大多數常見的模塊格式如: CommonJs 與 AMD。
webpack 附帶一個強大的插件(plugin)系統。絕大多數特性都基於該插件系統。它能讓你依據自身需求去定義web pack 還能發佈開源插件。
詳情請見插件系統