Amd,Cmd, Commonjs, ES6 import/export等均是模塊化方案api
一、Commonjs使用在Nodejs上,加載模塊是同步的。框架
二、Amd是requirejs在推廣過程當中對模塊定義的規範化產出,異步模塊定義,requirejs是對這個概念的實現,比如JavaScript語言是對ECMAScript規範的實現。異步
三、Cmd是seajs在推廣過程當中對模塊定義的規範化產出,是一個同步模塊定義,seajs是cmd概念的一個實現,seajs是淘寶團隊提供的一個模塊開發的js框架。模塊化
四、ES6 引進import/export進行模塊化requirejs
CMD和AMD的區別:
1.對於依賴的模塊AMD是提早執行,CMD是延遲執行。不過RequireJS從2.0開始,也改爲能夠延遲執行(根據寫法不一樣,處理方式不經過)。
2.CMD推崇依賴就近,AMD推崇依賴前置。
//AMD
define(['./c','./d'], function (c, d) {
//依賴一開始就寫好
c.test();
d.test();
});
//CMD
define(function (requie, exports, module) {
//依賴能夠就近書寫
var a = require('./c');
c.test();
...
//軟依賴
if (status) {
var d = requie('./d');
d.test();
}
});
3.AMD的api默認是一個當多個用,CMD嚴格的區分推崇職責單一。
例如:AMD裏require分全局的和局部的。CMD裏面沒有全局的 require,提供 seajs.use()來實現模塊系統的加載啓動。CMD裏每一個API都簡單純粹。 ui