# webpack导言

# 为什么要深入掌握webpack?

由于近年来手机、移动平板等移动设备的快速普及。Web前端的开发从传统的 PC网页开发发展到多终端的开发,所以不仅需要兼容PC、H5等各类不同分辨率 的网页开发。所以,针对不同应用场景做不同的打包就尤为重要。例如针对PC 后台的单页面应用打包,或者对性能和可访问性有要求的H5的构建。

再则,node.js的快速发展,基于npm的第三方依赖包不能直接在浏览器中直接 引入,所以需要借助webpack等构建工具来复用组件。

最后,当前留下的React,Vue和Angular的三大框架的一些语法特点,如JSX, {{}}等不能被浏览器直接解析,需要构建工具进行转换。

所以,借助webpack等构建工具打包尤为重要,再则,webpack在各类打包工具 中体现了优越的构建能力,例如功能强大、配置灵活,及特有的code spliting 等,还有基于loader/plugin丰富的配套工具和生态。所以webpack优越性更大。

# 入手webpack的难点

入手webpack可能对其打包理念:一切皆模块感到困惑,在webpack中,不仅JS 是模块,例如HTML,CSS,图片等皆可为模块。

其次就是webpack强大的插件扩展功能及其配置:entry、output、loaders、plugins 和概念热更新、code spliting等感到迷茫。

最后就是对webpack打包优化,体积优化等的深入。

# 学习webpack的过程

# webpack简介

  • 构建发展史

# 基础篇:webpack的基本用法

  • webpack的基本用法
  • webpack的进阶用法

# 进阶篇:webpack的构建优化

  • 编写可维护的webpack构建配置
  • webpack构建速度和体积优化

# 原理篇:webpack的打包原理

  • 通过源码掌握webpack打包原理

# 编写loader和plugins

  • 编写loader和plugins