Czy jest możliwe, aby zatrzymać requireJS przed automatycznym dodaniem rozszerzenia pliku .js?

Używam requireJS do ładowania skryptów. To maten szczegół w dokumentach:

Ścieżka używana dla nazwy modułu nie powinna zawierać rozszerzenia .js, ponieważ mapowanie ścieżki może dotyczyć katalogu.

W mojej aplikacji mapuję wszystkie moje pliki skryptowe w ścieżce konfiguracyjnej, ponieważ są one generowane dynamicznie w czasie wykonywania (moje skrypty rozpoczynają życie jak rzeczy takie jakorder.js ale stają się takimi rzeczamiorder.min.b25a571965d02d9c54871b7636ca1c5e.js (jest to skrót zawartości pliku, dla celów cachebusting).

W niektórych przypadkach require doda drugie rozszerzenie .js do końca tych ścieżek. Chociaż generuję ścieżki dynamiczne po stronie serwera, a następnie zapełniam ścieżkę konfiguracji, muszę następnie napisać jakiś dodatkowy kod javascript, aby usunąć.js rozszerzenie z problematycznych plików.

Czytając dokumenty requireJS, naprawdę nie rozumiem, dlaczego kiedykolwiek chciałbyś, aby mapowanie ścieżek było używane w katalogu. Czy to oznacza, że ​​można w jakiś sposób załadować całą zawartość katalogu w jednym wywołaniu? Nie rozumiem tego.

Czy ktoś wie, czy możliwe jest wymuszenie wymogu zaprzestania dodawania plików .js do ścieżek plików, więc nie muszę się hackować?

dzięki.

UPDATE: dodano kilka próbek kodu zgodnie z żądaniem.

To jest wewnątrz mojego pliku HTML (jest to projekt Scala, więc nie możemy zapisać tych zmiennych bezpośrednio w.js plik):

foo.js.modules = {
    order               : '@Static("javascripts/order.min.js")',
    reqwest             : 'http://5.foo.appspot.com/js/libs/reqwest',
    bean                : 'http://4.foo.appspot.com/js/libs/bean.min',
    detect              : 'order!http://4.foo.appspot.com/js/detect/detect.js',
    images              : 'order!http://4.foo.appspot.com/js/detect/images.js',
    basicTemplate       : '@Static("javascripts/libs/basicTemplate.min.js")',
    trailExpander       : '@Static("javascripts/libs/trailExpander.min.js")',
    fetchDiscussion     : '@Static("javascripts/libs/fetchDiscussion.min.js")'
    mostPopular         : '@Static("javascripts/libs/mostPopular.min.js")'
};

Potem w moimmain.js:

requirejs.config({
    paths: foo.js.modules
});

require([foo.js.modules.detect, foo.js.modules.images, "bean"], 
    function(detect, images, bean) {
        // do stuff
});

W powyższym przykładzie muszę użyć ciągu „bean” (który odnosi się do ścieżki require), a nie mojego bezpośredniego obiektu (podobnie jak inne używająfoo.js.modules.bar) w przeciwnym razie dostanę dodatkowe.js dołączony.

Mam nadzieję, że to ma sens.

questionAnswers(3)

yourAnswerToTheQuestion