该规范的核心思想是容许模块经过 require 方法来同步加载所要依赖的其余模块,而后经过 exports 或 module.exports 来导出须要暴露的接口node
require("module"); require("../file.js"); exports.doStuff = function() {}; module.exports = someValue;
优势:jquery
缺点:git
实现:github
Asynchronous Module Definition 规范其实只有一个主要接口 define(id?, dependencies?, factory),它要在声明模块的时候指定全部的依赖 dependencies,而且还要当作形参传到 factory 中,对于依赖的模块提早执行,依赖前置。浏览器
define("module", ["dep1", "dep2"], function(d1, d2) { return someExportedValue; }); require(["module", "../file"], function(module, file) { /* ... */ });
优势:服务器
缺点:curl
实现:异步
Common Module Definition 规范和 AMD 很类似,尽可能保持简单,并与 CommonJS 和 Node.js 的 Modules 规范保持了很大的兼容性。模块化
define(function(require, exports, module) { var $ = require('jquery'); var Spinning = require('./spinning'); exports.doSomething = ... module.exports = ... })
优势:requirejs
缺点:
实现: