模块化之路

直接定义依赖 1999

闭包模块化 2003

CommonJS 2009 模块化借助于nodeJS正式上场

  1. nodejs
  2. 服务端
  3. 同步加载

AMD 2009

  1. requireJS
  2. 同时兼容浏览器端和服务端
  3. 异步加载,提前加载依赖(即require的时候已经加载了依赖。

CMD seaJS 玉伯

  1. seaJS
  2. 着重于浏览器端
  3. 异步加载,运行到模块的时候才加载。更接近esmodule

UMD 2011

  1. 兼容性语法糖
  2. 优先解析为CommonJS模块机制,其次是Amd模块机制。exports Object

ESModules 2015

  1. es6
  2. 浏览器端实现,node在高版本也有一定支持(实验性)。
  3. 异步加载,运行到模块的时候才加载。

webpack 模块化

  1. 支持各种模块化机制。主要支持CommonJS和ESM。
  2. 浏览器和服务器端都可用。
  3. 同步加载,遵循CommonJS规范。
  4. Code Splitting,本质上是异步创建script节点来达到异步加载资源的目的。

你可能感兴趣的:(模块化之路)