同時に拡張機能を許可するrequire.jsを使用するアプリがあり、これらの拡張機能のjsは別のパスから提供されます。したがって、構成には次のものがあります。
var require = {
baseUrl : '/app/js/modules/'
}
ただし、内線番号は から提供され/extension/foo-extension/js/modules/
ます。data-module="foo/bar"
また、拡張機能は動的であり、そのモジュールをロードするために取得した を使用するページに HTML を挿入します。
理想的には、次のモジュールのロードを baseUrl 内にスコープする require.js のコンテキストを渡したり設定したりできます/extension/foo-extension/js/modules/
。私が知る限り、foo-extension からrequire('/extension/foo-extension/js/modules/foo/bar')
ロードする必要があります。foo/bar
パス/コンテキストの設定を処理する必要がある場所を想像するための擬似コードを次に示します。
define(['some-dep'], function(SomeDep) {
$.get('somepage', function(html) {
var extension = html.data('extension'); // "foo/bar"
var extensionBase = html.data('extensionBase'); // extension/foo-extension/js/modules/
// This is where we need to readjust require to use the base path for any foo module
});
});
絶対パスルートを使用することから、この部分に対する別の解決策はありますか?