[譯]開啓webpack之旅(二):webpack是什麼?

webpack是一個打包工具。html

web pack讀取這些有依賴關係的模塊併產生一個用來表示這些模塊的靜態資源。
圖片描述webpack

產生的意義?

市面上的模塊打包工具對大型應用(大型單頁面應用)並不十分合適。所以急需開發出一款能夠經過模塊化將代碼拆分與靜態資源生成無縫結合在一塊兒的工具。
曾嘗試從現有工具擴展,但實難達到全部目標。git

須要達到的目標:

  • 將依賴樹拆分紅塊並按需加載github

  • 短的初始化加載時間web

  • 每一個靜態資源都能視做模塊segmentfault

  • 引入第三方庫做爲模塊的能力異步

  • 自定義打包工具的能力模塊化

  • 適應大型項目工具

爲什麼web pack不同凡響

代碼拆分

webpack的依賴樹中有同步與異步兩種類型。異步依賴行爲將做爲拆分點並生成一個新的區塊(chunk)。在區塊(chunk)樹優化好後,文件將被分發到每個區塊(chunk)中去。優化

詳見代碼拆分

Loaders

webpack只處理JavaScript因此loaders被用來處理將各種資源轉換成JavaScript。由此全部的資源都能做爲模塊。

詳細閱讀使用loadersloaders

智能分析

web pack 擁有的智能分析系統能夠處理幾乎全部的第三方庫。甚至容許在依賴中使用形如 require("./templates/" + name + ".jade")的寫法。智能分析系統能夠處理大多數常見的模塊格式如: CommonJs 與 AMD。

閱讀更多關於依賴中的表達式CommonJsAMD

插件系統

webpack 附帶一個強大的插件(plugin)系統。絕大多數特性都基於該插件系統。它能讓你依據自身需求去定義web pack 還能發佈開源插件。

詳情請見插件系統

相關文章
相關標籤/搜索