最近在深刻學習 webpack,發現了一本不得了的開源書籍,從入門到每一個細節,再到進階,基本都涵蓋了。如今咱們使用 webpack 基本是藉助腳手架之力,拿來即用。我也贊成 webpack 配置是不該該背的,可是咱們應該瞭解構成 webpack 配置的每個部件負責的內容,而這本書對此是講的恰到好處,因此必須強烈安利一下!各位 webpack 熟練玩家也能夠在目錄挑選本身感興趣的部分,看看做者對 webpack 的理解。前端
SURVIVEJS — WEBPACK https://survivejs.com/webpack/
有能力的話推薦看原版,至於這邊翻譯,坑是必須填的,每週一到兩更。翻譯完成後會用 docusaurus 整理,方便閱讀。webpack
如今先把本書介紹翻譯過來吧~本章原文git
Webpack 解決了 Web 開發的基本問題:打包,從而簡化了 Web 開發。它接收各類資源,例如 JavaScript,CSS 和 HTML,並將它們轉換爲便於經過瀏覽器使用的格式。這樣作很好地消除了 Web 開發帶來的巨大痛苦。github
由於其配置驅動(configuration-driven)的實現,要學習 Webpack 並不簡單,但它很是強大。本指南的目的是從 0 教你如何使用 webpack,並深刻理解 webpack。web
Web 瀏覽器用於瀏覽 HTML,CSS 和 JavaScript。隨着項目的發展,跟蹤和配置全部文件變得過於複雜,不借助工具實在難以維護。Webpack 旨在解決這個問題。管理的複雜性是 Web 開發面對的基本問題之一,解決這個問題是必須的。npm
打包工具不僅有 Webpack,一系列不一樣的工具已經出現了。任務運行者,如 Grunt 和 Gulp 都是不錯的上層(與底層相對)工具。但問題是你須要手寫工做流程,把這一步交給打包工具(例如 webpack),是前端項目構建向前的一大步。瀏覽器
Webpack 採起另外一種方式。它容許你將項目視爲一個依賴圖。你能夠在項目中使用 index.js 經過標準的 require
或 import
語句引入項目所需的依賴項。若是須要,你甚至能夠以相同的方式引用樣式文件和其餘資源。性能優化
Webpack 爲你完成全部預處理,並根據你提供的配置文件生成生產包,配置文件功能多樣,但不容易學習。xss
在你開始瞭解 Webpack 的工做原理後,Webpack 將成爲不可或缺的工具。但願你看完本書能夠從入門到精通 webpack。工具
本書旨在補充 webpack的官方文檔。你能夠同時閱讀文檔和本書。
本書教你開發用於開發環境和生產環境的可組合 webpack 配置。本書涵蓋的高級技術可讓你充分利用webpack 4。
本書首先解釋了 webpack 是什麼。以後的章節會從不一樣的角度討論 webpack。在閱讀這些章節時,你能夠開發本身的 webpack 配置,同時學習一些基本技巧。
這本書分爲如下幾部分:
最後,有一個簡短的總結章節回顧了本書的要點。它包含本書中的技術清單,讓你條理清晰地完成你的項目。
本書末尾的附錄涵蓋了一些次要主題或是深刻探討前面提到的主要內容。你能夠以本身喜歡的順序閱讀本書。
最後的 Troubleshooting 附錄介紹了當 webpack 報錯時該怎麼作。閱讀本書時若有疑問,能夠看看附錄。若是你不清楚一些術語及其含義,請參閱本書末尾的 Glossary。
你應具有 JavaScript,Node 和 npm 的基本知識。若是你對 webpack 已經有初步瞭解,那就更好了。經過閱讀本書,你能夠加深對這些工具的理解。
若是你對 webpack 所知之甚少,請考慮仔細閱讀本書前半部分。若是你已經瞭解 webpack,請選擇你認爲有價值的技術瀏覽。
若是你已經熟悉了 webpack,那麼本書中仍有一些內容爲你所寫。看看你是否有什麼新技術能夠採用。特別是閱讀本章末尾和本書最後一章的摘要。
因本書的創新,得到了至關多的維護和改進,因此必須有一個版本控制方案。每一個新版本的發行說明都保存在本書博客。你也可使用 GitHub compare 工具對比版本間差別:
https://github.com/survivejs/webpack-book/compare/v2.1.7...v2.4.1
該頁面顯示了在給定版本範圍之間的各個提交。你還能夠在本書已修改的地方。
本書的當前版本是 2.4.1。
若是你遇到麻煩或與內容相關的問題,能夠選擇如下幾種方法:
若是你在 Stack Overflow 發佈問題,請使用 survivaljs 標記它們。你能夠在 Twitter 上使用 #survivaljs。
你能夠從如下來源找到更多相關材料:
Big thanks to Christian Alfoni for helping me craft the first version of this book. This is what inspired the entire SurviveJS effort. The version you see now is a complete rewrite.
This book wouldn’t be half as good as it's without patient editing and feedback by my editors Jesús Rodríguez, Artem Sapegin, and Pedr Browne. Thank you.
This book wouldn’t have been possible without the original "SurviveJS - Webpack and React" effort. Anyone who contributed to it deserves my thanks. You can check that book for more accurate attributions.
Thanks to Mike "Pomax" Kamermans, Cesar Andreu, Dan Palmer, Viktor Jančík, Tom Byrer, Christian Hettlage, David A. Lee, Alexandar Castaneda, Marcel Olszewski, Steve Schwartz, Chris Sanders, Charles Ju, Aditya Bhardwaj, Rasheed Bustamam, José Menor, Ben Gale, Jake Goulding, Andrew Ferk, gabo, Giang Nguyen, @Coaxial, @khronic, Henrik Raitasola, Gavin Orland, David Riccitelli, Stephen Wright, Majky Bašista, Gunnari Auvinen, Jón Levy, Alexander Zaytsev, Richard Muller, Ava Mallory (Fiverr), Sun Zheng’an, Nancy (Fiverr), Aluan Haddad, Steve Mao, Craig McKenna, Tobias Koppers, Stefan Frede, Vladimir Grenaderov, Scott Thompson, Rafael De Leon, Gil Forcada Codinachs, Jason Aller, @pikeshawn, Stephan Klinger, Daniel Carral, Nick Yianilos, Stephen Bolton, Felipe Reis, Rodolfo Rodriguez, Vicky Koblinski, Pyotr Ermishkin, Ken Gregory, Dmitry Kaminski, John Darryl Pelingo, Brian Cui, @st-sloth, Nathan Klatt, Muhamadamin Ibragimov, Kema Akpala, Roberto Fuentes, Eric Johnson, Luca Poldelmengo, Giovanni Iembo, Dmitry Anderson , and many others who have contributed direct feedback for this book!