Имаме приложение, използващо require.js, което в същото време позволява разширения и js на тези разширения се обслужва от различен път. Така че в нашата конфигурация имаме:
var require = {
baseUrl : '/app/js/modules/'
}
Но разширението се обслужва от /extension/foo-extension/js/modules/
. Освен това разширенията са динамични до такава степен, че инжектират малко html в страницата, която използва data-module="foo/bar"
, което ние избираме, за да заредим този модул.
В идеалния случай бихме могли да предадем/зададем контекст за require.js, който обхваща следните зареждания на модули да бъдат в рамките на baseUrl /extension/foo-extension/js/modules/
. Доколкото мога да кажа, ще трябва да направим require('/extension/foo-extension/js/modules/foo/bar')
, за да заредим foo/bar
от foo-разширение.
Ето малко псевдокод, за да си представим къде трябва да се справим със задаването на пътя/контекста:
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
});
});
Има ли друго решение за тази част от преминаването по абсолютния маршрут?