Загружать модули, используя имя модуля, а не имя файла

У меня есть два "определения" в двух отдельных файлах js.

def1.js и def2.js

define("mydefname1",["file1",...]});

define("mydefname2",["file2",....]});

У меня есть еще одно требование, где я проверяю, загружены ли два определения.

require(['def1','def2'], function(){alert('loaded')});

это работает нормально..

но если я попробую

require(['mydefname1','mydefname2'], function(){alert('loaded')});, 

это не работает.

Есть ли способ, которым я мог бы на самом деле использовать mydefname1 и mydefname2.. т.е. имя модуля для их загрузки, а не имя файла?

2 ответа

Насколько я знаю, это невозможно. Что я обычно делаю, так это форматирую имена файлов, чтобы они включали имя моего модуля, чтобы я мог включить его таким образом.

Для имени метакласса Overlay имя файла будет class.Overlay.js, а мои функции require/include будут брать имя моего модуля и строить из него имя файла.

Насколько я понимаю, RequireJS рекомендует избегать назначения имен модулей вручную - см. Здесь: http://requirejs.org/docs/api.html

FWIW, вы играли с опцией конфигурации "путь"? Я не думаю, что вы можете использовать его, чтобы делать именно то, что вы хотите сделать, но он может предложить приемлемый альтернативный подход. Смотрите здесь: http://requirejs.org/docs/api.html

Надеюсь, поможет!

Другие вопросы по тегам