关于 JavaScript 模块化的描述

发布时间 2023-11-05 23:52:44作者: 龙陌

AMD 是 RequireJS 在推广过程中对模块定义的规范化产出,而CMD 是 SeaJS 在推广过程中对模块定义的规范化产出,
也就是,RequireJS遵循AMD规范,而Sea.js遵循CMD规范

eaJs遵循CMD规范为通用模块规范,RequireJs遵循AMD规范为异步模块规范。CMD依赖就近,AMD依赖前置。


//CMD Common Module Definition 
define(function(require, exports, module) {
    var a = require('./a')
    a.doSomething()
    //...
    var b = require('./b') // 依赖可以就近书写
    b.doSomething()
    // ... 
    })

//AMD Asynchronous Module Definition 
define(['./a', './b'], function(a, b) { // 依赖必须一开始就写好
    a.doSomething()
    //...
    b.doSomething()
    //...
    })

AMD和CMD都是浏览器端的js模块化规范,分别由require.js和sea.js实现。 CommonJS是服务器端的js模块化规范,由NodeJS实现。

第一:首先区分浏览器端和服务器端的js模块化规范。

1)浏览器端的js模块化规范:AMD 和 CMD

2)服务器端的js模块化规范:CommonJS(注:由NodeJS实现)

第二:浏览器端的js模块化规范分别由什么实现。

1)AMD是由require.js实现的(记忆法,认为A是Async异步, 依赖前置,就是所有的依赖必须放在最前面)

2)CMD是由sea.js实现的(依赖就近,所有依赖需要了再引入)