webpack是一个打包工具。
web pack读取这些有依赖关系的模块并产生一个用来表示这些模块的静态资源。
产生的意义?
市面上的模块打包工具对大型应用(大型单页面应用)并不十分合适。因此急需开发出一款可以通过模块化将代码拆分与静态资源生成无缝结合在一起的工具。
曾尝试从现有工具扩展,但实难达到所有目标。
需要达到的目标:
将依赖树拆分成块并按需加载
短的初始化加载时间
每个静态资源都能视作模块
引入第三方库作为模块的能力
自定义打包工具的能力
适应大型项目
为何web pack与众不同
代码拆分
webpack的依赖树中有同步与异步两种类型。异步依赖行为将作为拆分点并生成一个新的区块(chunk)。在区块(chunk)树优化好后,文件将被分发到每一个区块(chunk)中去。
详见代码拆分
Loaders
webpack只处理JavaScript所以loaders被用来处理将各类资源转换成JavaScript。由此所有的资源都能作为模块。
智能分析
web pack 拥有的智能分析系统可以处理几乎所有的第三方库。甚至允许在依赖中使用形如 require("./templates/" + name + ".jade")
的写法。智能分析系统可以处理大多数常见的模块格式如: CommonJs 与 AMD。
插件系统
webpack 附带一个强大的插件(plugin)系统。绝大多数特性都基于该插件系统。它能让你依据自身需求去定义web pack 还能发布开源插件。
详情请见插件系统
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。