UMD、CommonJS、ES Module、AMD、CMD模块的写法

AMD异步模块规范

RequireJS就是AMD的一个典型的实现。

以下是一个只依赖与jQuery的模块代码:

CMD (Common Module Definition)

Sea.js 还提供了 nocache、debug 等插件,拥有在线调试等功能,能比较明显地提升效率。
Sea.js 还提供了 combo、flush 等插件,配合服务端,可以很好地对页面性能进行调优。
CMD 模块定义规范与 Node.js 的模块规范非常相近。通过 Sea.js 的 Node.js 版本,可以很方便实现模块的跨服务器和浏览器共享。

CommonJS

与node.js的格式非常相似。可配合Browserify进行使用。

Browserify 可以让你使用类似于 node 的 require() 的方式来组织浏览器端的 Javascript 代码,通过预编译让前端 Javascript 可以直接使用 Node NPM 安装的一些库。

UMD通用模块规范

由于CommonJS和AMD都十分流行,但似乎缺少一个统一的规范。于是,UMD(通用模块规范)出现了,它可以同时支持这两种风格。

虽然这个模式的写法比较难看,但是,它同时兼容了AMD和CommonJS,而且还支持老式的全局变量规范。

ES Module

参考:http://www.jianshu.com/p/ba6a24dc6b23