Amd,Cmd, Commonjs, ES6 import/export的异同点

Posted robint

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Amd,Cmd, Commonjs, ES6 import/export的异同点相关的知识,希望对你有一定的参考价值。

Amd,Cmd, Commonjs, ES6 import/export等均是模块化方案

1、Commonjs使用在Nodejs上,加载模块是同步的。

2、Amdrequirejs在推广过程中对模块定义的规范化产出,异步模块定义,requirejs是对这个概念的实现,好比javascript语言是对ECMAScript规范的实现。

3、Cmdseajs在推广过程中对模块定义的规范化产出,是一个同步模块定义,seajs是cmd概念的一个实现,seajs是淘宝团队提供的一个模块开发的js框架。

4、ES6 引进import/export进行模块化

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都简单纯粹。 

以上是关于Amd,Cmd, Commonjs, ES6 import/export的异同点的主要内容,如果未能解决你的问题,请参考以下文章

前端模块化方案:CommonJS/AMD/CMD/ES6规范

模块化理解 CommonJS AMD CMD ES6模块

模块化理解 CommonJS AMD CMD ES6模块

前端模块化 CommonJS AMD ES6 CMD

论AMD,CMD,CommonJs 和 ES6对比

关于commonjs,AMD,CMD之间的异同