AMD、CMD、CommonJs和ES6对比

1.什么是AMD、CMD、CommonJs?
AMD(异步模块定义)是RequireJS在推广过程中对模块定义的规范化产出,它是一个概念,而RequireJS实现这个概念。可以通过require引用加载。
RequireJS特点是依赖前置,即在定义前面通过数组的形式加载所有的依赖。

define(['package/lib'], function (lib) {
  function foo() {
    lib.log('hello world');
  }
  return {
    foo: foo
  };
});

CMD(同步模块定义)是SeaJS在推广过程中对模块定义的规范化产出,SeaJS是CMD这个概念的实现。特点是就近依赖,即哪里用到依赖就在哪里引入,即用即返回(同步概念)

define(function (require, exports, module) {
  // 通过require引入依赖
  var $ = require('jquery');
  var Spinning = require('./spinning')
});

CommonJs规范通过module.exports定义,前端浏览器并不支持,推荐在后端nodeJs中使用

exports.area = function (r) {
  return Math.PI * r * r;
};
exports.circumference = function (r){
  return 2 * Math.PI * r;
};

ES6新增特性 export/import

你可能感兴趣的:(AMD、CMD、CommonJs和ES6对比)