amd规范与cmd规范概要(代码片段)

both-eyes both-eyes     2023-02-03     150

关键词:

命名冲突和文件依赖,是前端开发过程中的两个经典问题。通过模块化开发来解决。

AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD
CMD 规范在这里:https://github.com/seajs/seajs/issues/242

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

4,还有一些细节差异,具体看这个规范的定义就好,就不多说了。
另外,SeaJS 和 RequireJS 的差异,可以参考:https://github.com/seajs/seajs/issues/277





cmd与amd

AMD是RequireJS在推广过程中对模块定义的规范化产出。CMD是SeaJS在推广过程中对模块定义的规范化产出。类似的还有CommonJSModules/2.0规范,是BravoJS在推广过程中对模块定义的规范化产出。还有不少??这些规范的目的都是为了JavaScript... 查看详情

mvc与vue2概要模板数据绑定与综合示例(代码片段)

...版本管理、jQuery等前端库层出不穷,前端代码日益膨胀AMD规范及其代表:Requir 查看详情

vue自学(代码片段)

...版本管理、jQuery等前端库层出不穷,前端代码日益膨胀AMD规范及其代表:RequireJS异步模块定义(AsynchronousModuleDefinition),它是依赖前置(因为依赖必须一开始就写好)会先尽早地执行(依赖)模块,相当于所有的require都被提前了CMD规... 查看详情

兼容nodeamdcmd规范(代码片段)

1;(function(name,definition)2//检测上下文环境是否为AMD或者CMD3varhasDefine=typeofdefine===‘function‘,4//判断上下文是否为node5hasExports=typeofmodule!==‘undefined‘&&module.exports;67if(hasDefine)8//AMD环境或CMD环境9d 查看详情

amd与cmd区别

AMD:异步模块定义,是一个浏览器端模块化开发的规范,由于不是原生JS支持,使用AMD规范需要用到require.js库require.js注意解决两个问题1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器2、js加载的... 查看详情

模块化开发(代码片段)

前端模块规范有三种:CommonJs,AMD和CMD。CommonJs用在服务器端,AMD和CMD用在浏览器环境AMD是RequireJS在推广过程中对模块定义的规范化产出。CMD是SeaJS在推广过程中对模块定义的规范化产出。AMD:提前执行(异步加载:依赖先执行)+延... 查看详情

amdcmdcommonjs规范

AMD、CMD、CommonJs规范 将js代码分割成不同功能的小块进行模块化的概念是在一些三方规范中流行起来的,比如CommonJS、AMD和CMD。接下来我们看一下这几种规范。 一、模块化规范    CommonJs是使用在服务器端,是... 查看详情

02.模块化相关规范(代码片段)

...而提升开发效率,并且方便后期的维护2.浏览器端模块化规范(已过时,不推荐使用,推荐使用ES6模块化规范)AMDRequire.js(http://www.requirejs.cn/)CMDSea.js(https://seajs.github.io/seajs/docs/)3.服务器端模块化规范CommonJS①模块分为单文件模块... 查看详情

js模块化的两种规范amd和cmd

AMD规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMDCMD规范在这里:https://github.com/seajs/seajs/issues/242AMD是RequireJS在推广过程中对模块定义的规范化产出。CMD是SeaJS在推广过程中对模块定义的规范化产出。区别:1.对于依赖的模块,AMD... 查看详情

模块(cmdamd)(代码片段)

...载(前置读取并加载))是RequireJS在推广过程中对模块定义的规范化产出。https://github.com/amdjs/amdjs-api/wiki/AMD CMD (cmd提前读取后加载)是SeaJS在推广过程中对模块定义的规范化产出。https://github.com/seaj 查看详情

了解js模块规范:amd,cmd,commonjs

...关键。 AMD,CMD,CommonJS是目前最常用的三种模块化书写规范。CommonJSCommonJS规范是诞生比较早的。Node.js(是一个Javascript运行环境(runtime))就采用了CommonJS。是这样加载模块://foo.jsmodule.exports=function(x){conso 查看详情

浅析js模块规范:amd,cmd,commonjs

... 模块化AMD,CMD,CommonJS是目前最常用的三种模块化书写规范。CommonJSCommonJS规范是诞生比较早的。NodeJS就采用了CommonJS。是这样加载模块:varclock=require(‘clock‘);clo 查看详情

理解js中的模块规范(commonjs,amd,cmd)

  随着互联网的飞速发展,前端开发越来越复杂。本文将从实际项目中遇到的问题出发,讲述模块化能解决哪些问题,以及如何使用Sea.js进行前端的模块化开发。恼人的命名冲突  我们从一个简单的习惯出发。我做项目时,... 查看详情

03amd规范的基础使用详解(代码片段)

AMD模块规范1.1AMD规范说明AMD规范专门用来实现浏览器端的模块化,并且模块的加载是异步的;引入一个第三方的require.js脚本用来解析AMD规范编写的模块1.2基本语法使用define用来暴露模块,使用require用来引入模块1.21暴露模块(1... 查看详情

浅析js中的模块规范(commonjs,amd,cmd)////////////////////////zzzzzz

浅析JS中的模块规范(CommonJS,AMD,CMD) 如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已。   现在就看看吧,这些规范到底是啥东西,干嘛... 查看详情

commonjs和amd/cmd

JS中的模块规范(CommonJS,AMD,CMD)一,CommonJSNodeJS是CommonJS规范的实现,webpack也是以CommonJS的形式来书写.在浏览器环境下,没有模块也不是特别大的问题,毕竟网页程序的复杂性有限,但在服务器端,一定要有模块,与操作系统和其他应... 查看详情

amd和cmd的区别

AMD规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMDCMD规范在这里:https://github.com/seajs/seajs/issues/242AMD是RequireJS在推广过程中对模块定义的规范化产出。CMD是SeaJS在推广过程中对模块定义的规范化产出。类似的还有CommonJSModules/2.0规范... 查看详情

amd和cmd的区别都有哪些

CMD是SeaJS在推广过程中对模块定义的规范化产出。类似的还有CommonJSModules/2.0规范,是BravoJS在推广过程中对模块定义的规范化产出。还有不少6868这些规范的目的都是为了JavaScript的模块化开发,特别是在浏览器端的。目前这些规范... 查看详情