YUI のローダー パターンを最大限に活用するには、いくつかのルールに従う必要があります。ディレクトリのパターン化に関する限り、あなたの例はほぼ正確に見えます。
ドキュメントに JavaScript ソース ファイルを明示的に含めない限り、YUI ローダーに、モジュールが存在することと、それらの依存関係があることを通知する必要があります。現時点では、モジュールの依存関係をロードする方法にバグがあるため、ローダー構成と YUI.add ステートメントのポストフィックスとして、2 つの場所で依存関係を宣言する必要があります。
ローダーは 2 つの方法で構成できます。 use を呼び出す前に構成を引数として YUI() に渡すか、構成を YUI_config グローバル変数に割り当てることができます。
var cfg = {
/* other configs */
modules: {
'mod3-base': { requires: [ 'mod3-class1', 'mod3-class2' ] },
'mod3-class1': { /* */ },
'mod3-class2': { /* */ }
}
}
// You could pass the config in as an argument:
YUI(cfg).use('mod3-class2', function(Y) {
// your code
});
// Or set it as a magic global:
YUI_config = cfg; // will implicitly configure all YUI().use statements
モジュールファイルの場所を認識できるように、ローダーを構成する必要があります。
通常、ローダーは、各モジュールが独自のディレクトリを持っていることを期待します。このディレクトリには、1 つ以上のサブモジュール ファイルと、連結された「スーパーモジュール」ファイルが含まれます。たとえば、「ベース」モジュールを見ると、次のパターンが見られます。
- base-base.js
- base-build.js
- base-pluginhost.js
- base.js: base-base、base-build、および base-pluginhost の連結コピー
これら 4 つのタイプのそれぞれには、「生」ソース ファイル、「-min」、および「-debug」の 3 つのバリアントがあります。ローダーの構成方法によっては、縮小されたバリアントが検索される場合があります。