JS模块化的几种方式

时间:2020-05-01

commonjs是用在服务器端的(也可以用在浏览器端),同步的,如nodejs
amd, cmd是用在浏览器端的,异步的,如requirejs和seajs
其中,amd先提出,cmd是根据commonjs和amd基础上提出的。

CommonJS

CommonJs 是服务器端模块的规范,Node.js采用了这个规范

根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。

示例:https://note.wyzda.com/425afc92b59d05ac2976527244c31d51

CommonJS 加载模块是同步的,所以只有加载完成才能执行后面的操作。像Node.js主要用于服务器的编程,加载的模块文件一般都已经存在本地硬盘,所以加载起来比较快,不用考虑异步加载的方式,所以CommonJS规范比较适用。但如果是浏览器环境,要从服务器加载模块,这是就必须采用异步模式。所以就有了 AMD  CMD 解决方案。

AMD((Asynchromous Module Definition)

AMD 是 RequireJS 在推广过程中对模块定义的规范化产出

示例:https://note.wyzda.com/91ca54c798490e34d97fa36b10c85d45

CMD

CMD是SeaJS 在推广过程中对模块定义的规范化产出

示例:https://note.wyzda.com/0c3b7ac214b56453139d67d17ae70a2b

ES6模块化

示例:https://note.wyzda.com/d4e11bf529444d94a13e6ad68a096603