webpack是什么

webpack是个模块打包工具,它获取有依赖关系的模块并生成表示这些模块的静态资源

为什么有webpack打包系统

现有的模块打包系统不适合大型的项目(单页面应用),最迫切的原因是因为代码拆分和静态资源
更好的接入模块化,对现有的模块化系统进行扩展,但是无法同时完成以下的所有目标

  • 拆分依赖树,使之成为按需加载
  • 让初始化加载时间更短
  • 每一个静态资源都是一个模块
  • 让第三方库成为模块
  • 尽可能的去定义模块的每一部分
  • 适用于大型项目

webpack有什么不同

webpack有同步与异步两种依赖方式,异步依赖在代码优化之后将会行程一个新的块。
加载器
webpack本身只支持处理javascript,但是加载器可以将其它的资源加载到javascript中去,这样做
每一个资源都是一个模块
智能解析
webpack有一个聪明的解析器可以处理几乎所有的第三方库,它甚至允许带有表达式的依赖,
require("./templates/" + name + ".jade")支持最常用的模块化方式CommonJS和AMD

插件系统

webpack以丰富的插件系统为特色,大多数的特色都是基于这个插件系统的,这允许你根据需要定义webpack
并且以开源的方式来发布通用插件。