さまざまなサイトでホストされる Javascript アプリケーションを作成しています。アプリケーション自体は jQuery と jQuery UI を使用します。私はjQuery.noConflict(true)
トリックを認識しており、現在それを使用しているため、グローバル空間を汚染しません。私の目的は、ホスティング サイトの何かと競合しないように、常に jQuery とそのプラグインをアプリケーションのローカルに保つことです。ホスティング サイトが独自の jQuery (おそらく異なるバージョン) を読み込んで、いくつかのプラグインを追加できるようにする必要があります。
ここで、アプリを AMD モジュールとして構成したいと思います。ホスティング サイトから AMD ローダー (require.js、curl など) を使用するように要求することは問題ありませんが、AMD API に準拠するものであれば何でも要求したいと思います (はい、それはまだ 100% 準備が整っていません)。
それはまったく可能ですか?ホスティング サイトが requirejs、curl、または Dojo AMD ローダーなどを使用できるように、相互運用可能な方法でそれを行うことはできますか?
たとえば、次のようにします。
define(['jquery'], function($) {
var myLocaljQuery = $.noConflict(true);
... my app module implementation here ...
});
アプリケーションで使用する jQuery のパスを指定するにはどうすればよいですか? 私が理解している限り、次のようなことはできません。
require.config({
paths: {
'jquery' : 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
}
});
define(['require'], function(require) {
require(['jquery'], function($) {
var myLocaljQuery = $.noConflict(true);
... my app module implementation here ...
});
});
1 つ目require
はグローバル オブジェクトであり、これは requirejs に固有であるためです。