理解CommonJS ,AMD ,CMD,UMD 模块规范
参考 : https://blog.csdn.net/xcymorningsun/article/details/52709608
1、CommonJS 模块规范 (同步加载模块):
var math = require('math'); // 其中 math 是模块实例 math.add(2,3); // 5
2、 AMD 模块规范 (异步加载依赖模块):
require(['math'], function (math) { // 其中 math 是模块实例 math.add(2, 3); });
3、CMD 模块规范 (异步加载依赖模块) : CMD 是 淘宝的玉伯大牛搞 了 SeaJS, 在推广过程中对模块定义的规范化产出。基本国内在用
4、UMD 模块规范:Universal Module Definition 通用模块定义
作用:一个模块代码,同时兼容 三种环境
- CommonJS(Node / Browserify)
- AMD(RequireJS)
- 浏览器全局变量(直接 script 标签引入)
一套代码,不用改,在哪都能跑。
UMD 核心逻辑套路
固定模板逻辑:
- 先判断是否是 AMD 环境(有 define && 能异步定义)
- 再判断是否是 CommonJS 环境(Node:module、exports)
- 都不是 → 挂到 浏览器全局 window 上
5、这里说到模块规范,es6 中的 import 也是一种模块规范。这里不做过多介绍,在es6分类中会详细介绍。

浙公网安备 33010602011771号