[译]开启webpack之旅(二):webpack是什么?

webpack是一个打包工具。html

web pack读取这些有依赖关系的模块并产生一个用来表示这些模块的静态资源。
图片描述webpack

产生的意义?

市面上的模块打包工具对大型应用(大型单页面应用)并不十分合适。所以急需开发出一款能够经过模块化将代码拆分与静态资源生成无缝结合在一块儿的工具。
曾尝试从现有工具扩展,但实难达到全部目标。git

须要达到的目标:

  • 将依赖树拆分红块并按需加载github

  • 短的初始化加载时间web

  • 每一个静态资源都能视做模块segmentfault

  • 引入第三方库做为模块的能力异步

  • 自定义打包工具的能力模块化

  • 适应大型项目工具

为什么web pack不同凡响

代码拆分

webpack的依赖树中有同步与异步两种类型。异步依赖行为将做为拆分点并生成一个新的区块(chunk)。在区块(chunk)树优化好后,文件将被分发到每个区块(chunk)中去。优化

详见代码拆分

Loaders

webpack只处理JavaScript因此loaders被用来处理将各种资源转换成JavaScript。由此全部的资源都能做为模块。

详细阅读使用loadersloaders

智能分析

web pack 拥有的智能分析系统能够处理几乎全部的第三方库。甚至容许在依赖中使用形如 require("./templates/" + name + ".jade")的写法。智能分析系统能够处理大多数常见的模块格式如: CommonJs 与 AMD。

阅读更多关于依赖中的表达式CommonJsAMD

插件系统

webpack 附带一个强大的插件(plugin)系统。绝大多数特性都基于该插件系统。它能让你依据自身需求去定义web pack 还能发布开源插件。

详情请见插件系统

相关文章
相关标签/搜索