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