AMD#
RequireJS を使用してモジュール化定義規格を作成し、主にブラウザ側で使用されます。特徴は、依存関係を事前に宣言する必要があることです。
define('./index.js', function(code) {
// codeはindex.jsの返り値です
});
CMD#
SeaJS を使用してモジュール化定義規格を作成し、主にブラウザ側で使用されます。特徴は、動的な依存関係のファイルをインポートすることができることです。
define(function(require, exports, module) {
var indexCode = require('./index.js');
});
UMD#
UMD:AMD と CommonJS のモジュール化構文に対応しています。
webpack(require.ensure):webpack 2.xのコード分割機能です。
CommonJS#
Node.js に組み込まれているモジュール化構文は以下の通りです:
- require,ES6 : インポートをサポートします
- module.exports : 外部に複数のモジュールをエクスポートします
- exports: 一つずつ外部にエクスポートします
//Node.jsの組み込みモジュール:require
const fs = require('fs');
//Node.jsの組み込みモジュール:module.exports, exports
const EventEmitter = require('events');
module.exports = new EventEmitter();
// いくつかの作業を処理し、一定時間後にモジュール自体から 'ready' イベントをトリガーします。
setTimeout(() => {
module.exports.emit('ready');
}, 1000);
ES Modules#
export と import の 2 つのコマンドは以下のようになります:
export:定義したモジュール変数をエクスポートします
import:モジュール変数をインポートします
//ES6 export:a.jsファイルをエクスポートする場合:export { one,two }
export default three
//ES6 import:ファイルをインポートする場合:
import { one, two } three from 'a.js'
上記の AMD、CMD、UMD の内容は、Githubから引用しました。