サードパーティのサイトに機能を追加するために組み込むことを目的としたスクリプトを書いています。私は最近、かなり厄介なカスタムローダーコードを取り除いて、requirejsに置き換え始めました。オプションでロードされるライブラリの1つ(渡されたパラメータによって異なります)はjQueryです。
これは、jQueryが既に存在するページにスクリプトが含まれるまではうまく機能します。その場合、プラグインが途中で読み込まれ、requirejsがページのバージョンに対してjQueryを読み込み、プラグインがすぐに壊れます。
このスクリプトを使用するためだけにページを書き直すようにクライアントに依頼することは問題外です。したがって、jQueryが既にロードされているかどうかを検出し、ロードされている場合は、requirejsによるロードをスキップして、すでにロードされているものを使用します(これにより、はるかに古いバージョンのjQueryを使用している場合に、奇妙なエッジケースやバグが発生する可能性がありますが、選択肢はあまりありません)。
私がやろうと思ったのは、最初にjQueryがロードされているかどうかを確認する新しいモジュールを作成することです。ロードされている場合は、jQueryオブジェクトをエクスポートし、ロードされていない場合は、ロードしてからエクスポートします。ただし、モジュールの定義関数が機能するには同期である必要があるように見えるため、私は困惑しているように見えます。そのため、非同期になる別のスクリプトをロードして、エクスポートをrequirejsに詰め込むことはできません。
ドキュメントに何かが欠けていますか?私が試みていることは不可能ですか?