AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
类似的还有 CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出。
还有不少⋯⋯
这些规范的目的都是为了 JavaScript 的模块化开发,特别是在浏览器端的。
目前这些规范的实现都能达成浏览器端模块化开发的目的。
区别:
1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible.
2. CMD 推崇依赖就近,AMD 推崇依赖前置。看代码:
// CMD
define(function(require, exports, module) {
var a = require('./a')
a.doSomething()
// 此处略去 100 行
var b = require('./b') // 依赖可以就近书写
b.doSomething()
// ...
})
// AMD 默认推荐的是
define(['./a', './b'], function(a, b) { // 依赖必须一开始就写好
a.doSomething()
// 此处略去 100 行
b.doSomething()
...
})
虽然 AMD 也支持 CMD 的写法,同时还支持将 require 作为依赖项传递,但 RequireJS 的作者默认是最喜欢上面的写法,也是官方文档里默认的模块定义写法。
3. AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分,推崇职责单一。比如 AMD 里,require 分全局 require 和局部 require,都叫 require。CMD 里,没有全局 require,而是根据模块系统的完备性,提供 seajs.use 来实现模块系统的加载启动。CMD 里,每个 API 都简单纯粹。
- 浏览: 96804 次
- 性别:
- 来自: 北京
最新评论
-
_大大大雄:
关于这个应用, 有些东西想要请教下您行么?
jsp 权限过滤器的应用 -
jptiancai:
博主,看了博客,收获很多,这个例子运行的时候,会报下面的错误: ...
jsp 权限过滤器的应用
相关推荐
*.vue文件经过编译使其满足AMD/CMD的模式
详细JS中的模块规范(CommonJS,AMD,CMD
如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已。 现在就看看吧,这些规范到底是啥东西,干嘛的。
模块化:是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式。 在理想状态下我们只需要完成自己部分的核心业务逻辑代码,其他方面的依赖可以通过直接加载被人已经写好模块进行使用即可。
本篇文章给大家介绍js模块规范之AMD规范和CMD规范,模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式,对js amd cmd规范感兴趣的童鞋可以来本文学习
自述文件作者:林东日期:2015 年 4 月 6 日操作说明npm install zonvert安装zonvert包zonvert -c ~/.jshintrc -d ./test/src -o ./test/build 这会将AMD转换为CMD javascript 文件。例子转换输入 define ( [ ...
模块化开发及AMD、CMD、Require.js、sea.js、common.js、ES6的对比;模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。模块化开发的基础就是函数
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结.docx
《模块化系列》彻底理清 AMD,CommonJS,CMD,UMD,ES6
AMD芯片在AndroidStudio中强烈受限。这个cmd文件执行了可以开控制hyper-v.运行完要重启电脑
AMD-Require.js- AMD&CMD练习
NULL 博文链接:https://ch19880311.iteye.com/blog/2184852
CommonJS 用同步的方式加载模块,在服务端,模块文件都存在本地磁盘,读取速度非常快,所以问题不大。ES6 的模块不是对象,import 命令会被 Java
先定位到 basemap-1.2.0-cp37-cp37m-win_amd64.whl 的所在文件夹,如:在F盘,键盘按 win + R 键打开命令行窗口,输入命令 cmd,再输入命令 F:,然后输入命令 pip install basemap-1.2.0-cp37-cp37m-win_amd64.whl ...
在windows的cmd里面输入命令: pip install TA_Lib‑0.4.17‑cp37‑cp37m‑win_amd64.whl 把TA_Lib‑0.4.17‑cp37‑cp37m‑win_amd64.whl放在C:\Windows\system32>文件夹下面 C:\Windows\system32>pip install TA_...
这是一篇关于javascript模块化AMD,CMD,CommonJS的学习总结,作为记录也给同样对三种方式有疑问的童鞋们,有不对或者偏差之处,望各位大神指出,不胜感激。 本篇默认读者大概知道require,seajs的用法(AMD,CMD用法),...
安装办法:下载资源文件,解压出dlib-19.17.0-cp37-cp37m-win_amd64.whl,然后通过CMD进入到该目录下,执行 pip3 install dlib-19.17.0-cp37-cp37m-win_amd64.whl 。不出现红色字体就代表安装成功了。成功提示:...
动态异步加载“ CommonJS ”和“ umd”和“ amd”,“ cmd”和“ ES”和'json'模块6合一 非常简洁小巧的工具,基于Promise 基于fetch ,加载的模块如果不同域,则必须支持跨域请求,因为要使用模块的源代码来生成...
JSModularization 简单介绍JS模块化的几种方式:commonJs、AMD、CMD、ES6等