最近在深刻学习 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!