# CommonJS

module、exports、require

// main.js
module.exports = { 
  fn: fn
}

var main = require('./main.js');
main.fn();

# AMD和require.js

 // 网页中引入require.js及main.js。注意data-main 和 src的区别
<script src="require.js" data-main="main.js"></script>

// main.js 首先用config()指定各模块路径和引用名
require.config({
  baseUrl: "js",
  paths: {
    "jquery": "jquery.min",
    "t": "t",
  }
});

// 引用
require(["jquery",'t'],function($,t){
  
});

// 定义一个模块 t.js
define(['jquery'], function ($) {
  return {
    fn() {

    }
  };
});

根目录包含main.js/require.js以及js文件夹包含jquery.min.js/t.js

# CMD和sea.js

# ES6 Module

export、import、export default

# 其他

CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。 CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。