AMD を使用しない既存の Web アプリケーションに RequireJS を統合することを検討しています。スクリプトを含めるページには、jQuery やいくつかの一般的な社内スクリプトなど、多数のスクリプトが既に含まれています。
<script>
これらのスクリプトの一部を、従来のタグで既にロードした後に Require でロードするとどうなるか興味がありました。これが私が試したものです:
index.html
<script src="js/lib/jquery.js"></script>
<script src="js/lib/require.js" data-main="js/init.js"></script>
init.js
require.config({
paths: {
jquery: "js/lib/jquery"
});
require(["jquery"], function($) {
//Do stuff
});
js/lib/jquery.js
私の希望は、スクリプトをリロードするのではなく、ページに既に読み込まれていることを確認し、それをモジュールとして使用できるほど Require がスマートであることでした。次に、ページの内容を調べたところ、Require が実際にスクリプトをリロードしたことがわかりました。
<script type="text/javascript" src="/js/libs/jquery.js"></script>
...
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="/js/libs/jquery.js"></script>
これはおそらく、Require が私が望んでいることを行うのに十分なほどスマートであることを期待するのに少し手の届くところにあることを理解していますが、このように機能する場合、Require を既存のサイトと統合する開発者にとっては非常に便利です。そうすれば、必要なコードを変更する必要さえなく、レガシー スクリプトを自由に AMD モジュールに移動できます。夢を見ているだけかもしれませんが。:)
これを行う方法はありますか?