RequireJS 和 Sea.js 都是模块加载器,一起努力推广模块化开发思想,倡导模块化开发理念,核心价值是让 JavaScript 的模块化开发变得简单自然。
异步模块定义(AMD)是Asynchronous Module Definition的缩写,是 RequireJS 在推广过程中对模块定义的规范化产出。
通用模块定义(CMD)是Common Module Definition的缩写,是SeaJS 在推广过程中对模块定义的规范化产出。
此外还有 CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出。
区别:
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. 还有一些细节差异,具体看这个规范的定义就好,就不多说了。
相关推荐
Vue.js 是一款流行的前端...总之,Vue文件经过编译以满足AMD/CMD的模式,是一项将Vue.js组件与现有模块化体系集成的关键技术,它通过构建工具和适当的配置,确保了Vue.js的组件可以在遵循AMD或CMD的项目中正常工作。
### 浅析AMD、CMD与CommonJS规范——JavaScript模块化加载学习心得总结 #### 一、引言 在现代Web开发中,随着项目规模的不断扩大和技术复杂度的提高,JavaScript模块化成为了一种非常重要的编程实践。通过将复杂的...
以上介绍的三种模块规范——**CommonJS**、**AMD** 和 **CMD**,各有侧重,适用于不同的场景。CommonJS主要用于服务器端的开发,而AMD和CMD则更适合于浏览器端的开发。随着ES6标准中模块的支持,这些规范的重要性...
AMD、CMD和CommonJS是三种流行的JavaScript模块化规范,它们各自有着不同的特点和使用场景。 CommonJS规范主要是在服务器端JavaScript环境中使用的,比如Node.js,它支持同步加载模块。根据CommonJS规范,一个单独...
本文将深入探讨AMD(Asynchronous Module Definition)、CMD(Common Module Definition)以及CommonJS规范,这些都是JavaScript模块化的解决方案。 首先,CommonJS是一个为JavaScript生态构建标准化库的项目,主要...
### JS中的模块规范(CommonJS, AMD, CMD) #### 一、CommonJS CommonJS 是一种模块化标准,最初被设计用于服务器端JavaScript环境,特别是针对Node.js这样的平台。CommonJS 的核心理念是允许开发者将代码组织成独立...
gulp-vue-module *.vue组件文件的Gulp插件符合AMD / CMD / CommonJS模块。 现在,您可以使用 / ...等。前端模块加载器加载Vue组件,而不使用和 。用法$ npm install gulp-vue-module --save-dev Gulpfile.js : var ...
gulp-wind-tpl2js 将模板编译为js字符串,并包装为amd / cmd模块。安装使用NPM安装软件包: npm install gulp-wind-tpl2js 用法 var tpl2js = require ( 'gulp-wind-tpl2js' ) ;gulp . task ( 'tpl2js' , function ...
一个简单的jQuery省市联动插件,支持AMD/CMD方式调用,当然,也支持直接引用。 下载地址 插件使用 默认有两个下拉框的时候 $('#province, #city').citylist({ data : data, id : 'id', children: 'cities', name...
AMD(Asynchronous Module Definition)和CMD(Common Module Definition)是两种不同的JavaScript模块化开发规范,它们主要用于解决在浏览器环境中加载和组织代码的问题。AMD由RequireJS提出并推广,CMD则是Sea.js...
requirejs seajs amd cmd,该PPT主要用于讲解前端模块化的前世今身。 requirejs seajs amd cmd,该PPT主要用于讲解前端模块化的前世今身。
本文主要探讨两种常见的JavaScript模块规范:AMD(Asynchronous Module Definition)和CMD(Common Module Definition),以及它们之间的差异。 首先,AMD规范由RequireJS提出,其主要特点是异步加载模块。`define`...
自述文件作者:林东日期:2015 年 4 月 6 日操作说明npm install zonvert安装zonvert包zonvert -c ~/.jshintrc -d ./test/src -o ./test/build 这会将AMD转换为CMD javascript 文件。例子转换输入 define ( [ ...
模块化:是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式。 在理想状态下我们只需要完成自己部分的核心业务逻辑代码,其他方面的依赖可以通过直接加载被人已经写好模块进行使用即可。
《模块化系列》彻底理清 AMD,CommonJS,CMD,UMD,ES6
模块化开发及AMD、CMD、Require.js、sea.js、common.js、ES6的对比;模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。模块化开发的基础就是函数
AMD芯片在AndroidStudio中强烈受限。这个cmd文件执行了可以开控制hyper-v.运行完要重启电脑