可谓集CommonJS、AMD、ES6等多种特性于一身,灵活、易用、高扩展性、性能优越。
核心配置
以下是webpack的几个核心配置节:
节点 | 说明 |
---|---|
entry | 指定要打包的文件 |
resolve | 配置寻找模块的规则 |
module | 配置处理模块的规则,项目里面的一切都是模块,一个文件就是一个模块 |
loader | 各种加载器,用于代码转换 |
plugin | 配置扩展插件,各种各样的插件,这也是其灵活性特色的一大体现 |
output | 打包后文件的输出目录 |
处理流程
首先,webpack
在启动后会从entity
里配置的module
开始,因为module
之间都会存在多个依赖有关系,所以它会去递归解析entry
依赖的所有module
;
然后,module
会以entity
为单位进行分组,一个entity
及其所有依赖的module
被分到一个组也就是一个chunk
;
最后,webpack
会将所有 chunk
转换成文件输出;
在整个流程中,webpack
会在恰当的时机执行plugin
里定义的逻辑。