Requirejs-commonjs

提供:Dev Guides
移動先:案内検索

RequireJS-CommonJS

モジュール形式はCommonJSによって定義されます。 ブラウザの同等のオプションを他のJavaScript環境に提供せずに定義されます。 したがって、CommonJS仕様では、http://wiki.commonjs.org/wiki/Modules/Transport [トランスポート形式]およびhttp://wiki.commonjs.org/wiki/Modules/Async/A [非同期要求]を推奨しています。 RequireJSで動作するように、従来のCommonJSモジュール形式を簡単に変換できます。 ただし、すべてのモジュールが新しい形式に変換されるわけではありません。 例外のいくつかは以下にリストされています-

  • require呼び出しを行うための条件コードを備えたモジュール。
  • 循環依存関係のあるモジュール。

手動変換

CommonJSモジュールは、次の構文を使用してRequireJS形式に手動で変換できます-

define(function(require, exports, module) {
  //place CommonJS module content here
});

変換ツール

CommonJSモジュールは、_r.js_ファイルに組み込まれているhttps://github.com/requirejs/r.js[r.jsプロジェクト]コンバーターツールを使用して、RequireJS形式に変換できます。 以下に示すように、変換するファイルのパスと出力フォルダーを指定する必要があります-

node r.js -convert path/to/commonjs/modules/path/to/output

エクスポートされた値の設定

CommonJSの一部のシステムでは、エクスポートされた値を_module.exports_として割り当てることでエクスポートされた値を設定できますが、RequireJSは、定義に渡された関数から値を返す簡単な方法をサポートします。 これの利点は、エクスポートとモジュール関数の引数を必要としないため、以下に示すようにモジュール定義から除外することができます-

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には最適化ツールがあり、モジュール定義を組み合わせてブラウザー配信用の最適化されたバンドルにすることができます。 コード展開の一部として使用できるように、コマンドラインツールとして動作します。