amd cmd commonjs 模块规范 和 es6 的 module 语法

  • js的模块化

    在前端开发的原始时期,只要在script标签中嵌入js代码就能实现一些基本的交互效果,但是随着时代的进步。js扮演的角色变得重要起来,js应用的场景页越来越复杂,。然而,js都没有类的概念,更不用说模块了。

    为什么要有模块化

    1. 当一个项目变得复杂的时候,会出现问题,比如:
      命名冲突:开发中重复命名,导致命名冲突。
      文件依赖:项目开发中,依赖的js文件,引入遗漏,引入顺序错误。
    2. 使用模块化开发可以避免类似情况,而且利于项目的维护:
      提升开发效率:代码方便重用,能直接引入,避免重复开发。
      方便后期维护:维护起来文件依赖和结构清晰
  • AMD
    AMD 英文Asynchronous Module Definition,中文“异步模块定义”。它是一个在浏览器端模块化开发的规范。AMD规范的主要实现是RequireJs

define(id?, dependencies?, factory)
id:指定义中模块的名字(可选)。如果没有提供该参数,模块的名字应该默认为模块加载器请求的指定脚本的名字。如果提供了该参数,模块名必须是“顶级”的和绝对的(不允许相对名字)。
dependencies:当前模块依赖的,已被模块定义的模块标识的数组字面量(可选)。
factory:一个需要进行实例化的函数或者一个对象。   


   define("alpha", ["require", "exports", "beta"], function (require, exports, beta) {
       exports.verb = function() {
           return beta.verb();
           //Or:
           return require("beta").verb();
       }
   });
  • CMD 
    CMD 英文 Common Module Definition。CMD 依赖就近。CMD规范的主要实现是SeaJs

      define(function(require, exports, module){ 模块代码 });
      
  • commonjs
    CommonJS是服务器端模块的规范,Nodejs使用该规范。
    CommonJS定义,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,在该模块内部定义的变量,无法被其他模块读取,除非定义为global对象属性。
    通过 require 来加载模块。
    commonJs通过 exports 和 modul.exports 来暴露模块中的内容。
  • es6的module 语法 
    一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。
    export 命令用于规定模块的对外接口。
    import 命令用于输入其他模块提供的功能。
    // profile.js
    export var firstName = ‘Michael‘;
    export var lastName = ‘Jackson‘;
    export var year = 1958;
    // main.js
    import {firstName, lastName, year} from ‘./profile‘;
    
    function setName(element) {
      element.textContent = firstName + ‘ ‘ + lastName;
    }
时间: 2024-10-06 11:15:31

amd cmd commonjs 模块规范 和 es6 的 module 语法的相关文章

AMD,CMD.CommonJs和UMD还有es6的模块化对比

CommonJS CommonJS是服务器端模块的规范,Node.js采用了这个规范. 根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象. 例如: // foobar.js //私有变量 var test = 123; //公有方法 function foobar () { this.foo = function () { // do someing ... } this.bar = functi

FW: AMD, CMD, CommonJS和UMD

javascript 我是豆腐不是渣 4月5日发布 推荐 2 推荐 收藏 32 收藏,486 浏览 今天由于项目中引入的echarts的文件太大,requirejs经常加载超时,不得不分开来加载echarts的各个图表.但是使用echarts自带的在线构建工具生成的支持AMD 标准的模块报错,所以不得不使用echarts的全局函数,使用requirejs的shim进行加载.借此机会学习一下AMD, CMD, CommonJS和UMD各自的规范,和它们之间的区别. Javascript模块化 在了

AMD/CMD/CommonJs的区别

AMD/CMD/CommonJs是js模块化开发的标准,目前对应的实现是RequireJs/SeaJs/nodeJs. CommonJs 主要针对服务器端,AMD/CMD 主要针对浏览器端. 服务器端和浏览器端有什么区别呢? 服务器端一般采用同步加载文件,也就是说需要某个模块,服务器便停下来,等待它加载再执行,而浏览器要保证效率,需要采用异步加载,这就需要一个预处理,提前将说需要的模块并行加载好. AMD和CMD的区别,虽然都是并行加载文件,但还是有所区别,AMD是预加载,在并行加载js文件同时

CommonJs模块规范

1.什么是模块化 文件作用域 通信规则 加载 require 导出 exports 2.CommonJs模块规范 在Node中的Javascript还有一个很重要的概念:模块概念 模块作用域 使用require方法来加载模块 语法: var 自定义变量名称 = require('模块') 两个作用: 执行被加载模块中的代码 得到被加载模块中的exports导出接口对象 使用exports借口对象来导出模块中的成员 Node中的模块作用域,默认文件中所有的成员在当前文件模块有效 对于希望可以被其他

把自己的js模块兼容到AMD CMD CommonJS

为了让同一个模块可以运行在前后端,在写作过程中需要考虑兼容前端也实现了模块规范的环境.为了保持前后端的一致性,类库开发者需要将类库代码包装在一个闭包内.以下代码演示如何将hello()方法定义到不同的运行环境中,它能够兼容Node(CommonJS),AMD,CMD以及常见的浏览器环境中: (function (name, definition) { //检测上下文环境是否为AMD或CMD var hasDefine = typeof define === 'function'; //检查上下文

浅析JS模块规范:AMD,CMD,CommonJS

随着JS模块化编程的发展,处理模块之间的依赖关系成为了维护的关键. 模块化 AMD,CMD,CommonJS是目前最常用的三种模块化书写规范. CommonJS CommonJS规范是诞生比较早的.NodeJS就采用了CommonJS.是这样加载模块: var clock = require('clock'); clock.start(); 这种写法适合服务端,因为在服务器读取模块都是在本地磁盘,加载速度很快.但是如果在客户端,加载模块的时候有可能出现"假死"状况.比如上面的例子中cl

了解JS模块规范:AMD,CMD,CommonJS

随着JS模块化编程的发展,处理模块之间的依赖关系成为了维护的关键. AMD,CMD,CommonJS是目前最常用的三种模块化书写规范. CommonJS CommonJS规范是诞生比较早的.Node.js(是一个Javascript运行环境(runtime))就采用了CommonJS.是这样加载模块: // foo.js module.exports = function(x) { console.log(x); }; // main.js var foo = require("./foo&qu

前端模块规范AMD/UMD/CommonJs

.babelrc文件中的:module设置为false,为什么会要设置成false? 解释:使ES6模块语法转换到另一个模块类型(默认启用“commonjs”). 设置为假则不变换模块.或者传入(“amd”.“umd”,“systemjs”.“commonjs”). 什么是模块? Javascript的组件生态在最近几年的发展很给力,我们的可选性更加广泛了.这本是一件好事,但是当多个第三方Javascript在一起混合使用的时候,我们可能会遇到一个很尴尬的问题,那就是不是所有的组件都能在一起很愉

commonjs amd cmd的区别

一篇博客告诉你三者的区别:http://zccst.iteye.com/blog/2215317 告诉你三者同requirejs seajs的区别:http://blog.chinaunix.net/uid-26672038-id-4112229.html 本人道听途生的: commonjs的规范在node还没有产生以前,就有了,commonjs作为一个后端的规范,虽然后端的Js以前发展缓慢,但是commonjs这个规范还是比较完善的,随着Node的普及,commonjs被完全遵从和实现,com