Загружать модули, используя имя модуля, а не имя файла
У меня есть два "определения" в двух отдельных файлах 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
Надеюсь, поможет!