2019-01-21

(JS加载方式区别)[https://www.jianshu.com/p/bd4585b737d7]

CommonJS

Nodejs 加载模块的一种方式

AMD
AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义".
CMD是SeaJS 在推广过程中对模块定义的规范化产出

对于依赖的模块AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执行(根据写法不同,处理方式不通过)。

CMD推崇依赖就近,AMD推崇依赖前置。

UMD
UMD是AMD和CommonJS的糅合
AMD模块以浏览器第一的原则发展,异步加载模块。
CommonJS模块以服务器第一原则发展,选择同步加载,它的模块无需包装(unwrapped modules)。
这迫使人们又想出另一个更通用的模式UMD (Universal Module Definition)。希望解决跨平台的解决方案。
UMD先判断是否支持Node.js的模块(exports)是否存在,存在则使用Node.js模块模式。
在判断是否支持AMD(define是否存在),存在则使用AMD方式加载模块。

你可能感兴趣的:(2019-01-21)