2

YUI3 でロードする必要がある JavaScript モジュールをいくつか作成する予定です。ファイルとフォルダーをどのように整理すればよいですか? 推奨されるフォルダー構造はありますか? 「コア」または「ギャラリー」に似たファイルを保存すると、簡単にロードできるはずですか?

次の方法でスクリプトを保存する場合、"YUI().use ..." 呼び出しですべてのモジュールをリストする必要がありますか?

de-mylib-www/mymodules/mod1/mod1-base.js
de-mylib-www/mymodules/mod2/mod2-base.js
de-mylib-www/mymodules/mod3/mod3-base.js
de-mylib-www/mymodules/mod3/mod3-class1.js
de-mylib-www/mymodules/mod3/mod3-class2.js
4

2 に答える 2

2

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 つ以上のサブモジュール ファイルと、連結された「スーパーモジュール」ファイルが含まれます。たとえば、「ベース」モジュールを見ると、次のパターンが見られます。

  1. base-base.js
  2. base-build.js
  3. base-pluginhost.js
  4. base.js: base-base、base-build、および base-pluginhost の連結コピー

これら 4 つのタイプのそれぞれには、「生」ソース ファイル、「-min」、および「-debug」の 3 つのバリアントがあります。ローダーの構成方法によっては、縮小されたバリアントが検索される場合があります。

于 2011-06-07T21:04:30.930 に答える