一、什么是 webpack

webpack 是一个模块打包机,将根据文件间的依赖关系对其进行静态分析,然后将这些模块按指定规则生成静态资源
当 webpack 处理程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

  • 主要承担如下功能:
    • 打包:将多个文件 打包成 一个文件,减少服务器压力和下载带宽
    • 转换:将预编译语言 转换成 浏览器识别的语言
    • 优化:性能优化
  • webpack 特点:
    • 代码拆分webpack 有两种组织模块的依赖方式,同步、异步异步依赖将作为分割点,形成一个新的块;在优化了依赖树之后,每一个异步区块都将作为一个文件被打包
    • 智能解析webpack 有一个智能解析器,几乎可以处理任何第三方库无论它们的模块形式是 CommonJS、 AMD 还是普通的 JS 文件;甚至在加载依赖的时候,允许使用动态表达式 require(“./templates/” + name + “.jade”)
    • 快速运行webpack 使用异步 I/O 、多级缓存提高运行效率,使得 webpack 以难以令人置信的速度 快速增量编译