RequireJS-CommonJS
モジュール形式はCommonJSによって定義されます。これは、他のJavaScript環境と同等のブラウザーオプションを提供せずに定義されています。したがって、CommonJS仕様では、トランスポート形式と非同期のrequireを推奨しています。従来のCommonJSモジュール形式をRequireJSで動作するように簡単に変換できます。ただし、すべてのモジュールが新しい形式に変換されるわけではありません。いくつかの例外を以下に示します-
- require呼び出しを行うための条件付きコードを持つモジュール。
- 循環依存のあるモジュール。
手動変換
CommonJSモジュールは、次の構文を使用して手動でRequireJS形式に変換できます-
define(function(require, exports, module) {
//place CommonJS module content here
});
変換ツール
CommonJSモジュールは、r.jsファイルに組み込まれているr.jsプロジェクトコンバーターツールを使用して、RequireJS形式に変換できます。以下に示すように、変換するファイルのパスと出力フォルダを指定する必要があります-
node r.js -convert path/to/commonjs/modules/ path/to/output
エクスポート値の設定
CommonJSの一部のシステムでは、エクスポートされた値をmodule.exportsとして割り当てることで、エクスポートされた値を設定できます。ただし、RequireJSは、defineに渡された関数から値を返す簡単な方法をサポートしています。これの利点は、エクスポートとモジュール関数の引数が必要ないため、以下に示すように、モジュール定義からそれらを除外できることです。
define(function (require) {
var name = require('name');
//Define the module as exporting a function
return function () {
name.doSomething();
};
});
代替構文
依存関係を指定する別の方法は、依存関係配列引数define()を使用することです。ただし、依存関係配列内の名前の順序は、以下に示すように、定義関数define()に渡される引数の順序と一致する必要があります。
define(['name'], function (name) {
return function () {
name.doSomething();
};
});
CommonJSパッケージからのモジュールのロード
場所とパッケージ属性について知るために、モジュールはRequireJS構成をセットアップすることにより、RequireJSを使用してCommonJSパッケージにロードされます。
最適化ツール
最適化ツールはRequireJSにあり、モジュール定義を組み合わせて、ブラウザー配信用に最適化されたバンドルにすることができます。これはコマンドラインツールとして動作するため、コード展開の一部として使用できます。