CMD vs AMD vs CommonJS 的区别

2018/2/8 posted in  JavaScript

作为一个前端开发面对不同的项目,不同的开发小组使用的不同技术栈总有一种“前端东西真是杂,学不完”的想法。其中包含的“杂”就有很多方面的内容。今天我们主要说的就是:前端模块化开发过程中遇到的“模块化规范”。

提到前端模块化首先想到的肯定是 CMD、AMD、CommonJS 这些规范,当然还有 UMD。下面我们就逐个解释一下各种规范的意义,并做一下对比。

1、概念解释

1.1 AMD(Asynchronous module definition)

AMD 全称是:Asynchronous module definition,译为:异步模块定义。是编程语言 JavaScript 的规范。它定义了一个定义代码模块及其相关性的应用程序编程接口(API),并在需要时异步加载它们。AMD 的实现提供了以下好处:

  • 网站性能改进。为什么说改进了网站的性能,因为它实现了可以加载更小的JS文件,并且是再用到的时候才加载,也就是异步加载。
  • 减少页面错误。解释一下,AMD模式之所以能减少错误,是因为AMD实现了在开发时可以定义依赖关系,并且是在代码执行之前。这样就可以减少我们使用到了没有依赖的代码,从而减少错误。

1.2 CMD()

1.3 CommonJS()

1.4 UMD()

2、不同模式的对比

参考资料:

1.Writing Modular JavaScript With AMD, CommonJS & ES Harmony
2.