CommonJS是一种规范,包括很多内容,NodeJS是这种规范的实现。
RequireJS与SeaJS 都是模块加载器。RequireJS工作于web浏览器端,同时也工作于web服务器端,SeaJS专注于web浏览器端。
RequireJS与SeaJS 的差异,可以参考:https://github.com/seajs/seajs/issues/277 http://www.douban.com/note/283566440/
AMD与CDM是属于CommonJS的,它们都是模块规范,它们是在RequireJS与SeaJS 的推广过程中产生的。
AMD 规范在这里:
https://github.com/amdjs/amdjs-api/wiki/AMD-(%E4%B8%AD%E6%96%87%E7%89%88)
CMD 规范在这里: https://github.com/seajs/seajs/issues/242 (内有彩蛋,一点就通)
CMD 规范在这里: https://github.com/seajs/seajs/issues/242 (内有彩蛋,一点就通)
彩蛋:exports 是module.exports的引用。对exports的赋值重写实际上不会改变模块的属性或方法,需通过对module.exports进行赋值,或者直接return。
1.对于于依赖的模块,AMD 是提前执行(好像现在也可以延迟执行了),CMD 是延迟执行。
2.AMD 推崇依赖前置,CMD 推崇依赖就近。
3.AMD 推崇复用接口,CMD 推崇单用接口。
4.书写规范的差异,不具体说明了。