YUI モジュールが定義されているかどうか (つまり、誰かがそのモジュールに対して YUI.add() を呼び出したかどうか) を実行時に判断したいと考えています。
YUI コードを読むと、YUI.Env.mods[moduleName] でうまくいくように見えますが、このプロパティに関するドキュメントが見つからないため、このプロパティが使用/機能することを意図しているかどうかはわかりません。ケース。これを行うための好ましい方法はありますか?
編集:これが私が達成しようとしていることです:
ほとんどのアセットが HEAD のリンク/スクリプト タグを介して手動で読み込まれるシステムから、YUI ローダーにもっと依存するシステムに切り替えています。レガシ コードをサポートするために、HEAD にプリロードされたモジュールが YUI によって再度ロードされないようにしたいと考えています (jQuery のようなものは、2 回ロードすると問題が発生します)。
プリロードされたモジュールは、YUI スタイルのモジュールと非 YUI スタイルのモジュールが混在しています。
これまでのところ、次のようなコードを発行しています。
<head>
<!-- bunch of script/link tags -->
<script>
var modules = // list of preloaded modules
, i;
for (i = 0; i < modules.length; ++i) {
if (!ISMODULEALREADYDEFINED(modules[i])) {
YUI.add(modules[i], function (Y) { }, '');
}
}
</script>
</head>
ISMODULEALREADYDEFINED チェックが必要な理由は、事前にロードされたモジュールの一部が YUI スタイルのモジュールである場合、上記のスクリプトを実行すると、YUI が依存関係を非同期的にロードし続ける可能性があるためです。その場合、追加している noop モジュール定義によって、元のモジュール定義コールバックが実行されなくなります。