2013-08-06 3 views
2

Есть ли способ динамически разрешать пути с помощью RequireJS? Например, можно настроить его так, что, если яДинамически разрешать пути с RequireJS

require(['mymodule'], function(mod){ }); 

какая-то функция шахты будет называться, с "mymodule" передается в качестве параметра, и со значением я возвращаюсь из него используется Требовать как путь к использованию для mymodule?


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

+0

Да, пойти написать плагин: http://requirejs.org /docs/plugins.html –

ответ

2

Тебе лучше всего подходит при организации loader plugin.

Не уверен, если это проблема для вас, но это будет означать ваш требует синтаксис превратится во что-то вроде этого:

require(['myplugin!mymodule'], function(mod){ }); 

Конкретный метод, который вы будете использовать это normalize:

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

EDIT: Я вижу, что есть replace plugin перечислены на plugins wiki, который звучит похоже на то, что вы пытаетесь сделать. Он использует только метод load, поэтому, очевидно, что я сказал выше о методе normalize, не является общим правилом.

Если путь действительно динамический, это не поможет, но если вам просто нужно изменить способ возврата устаревшего скрипта к вашим модулям (например, взяв два разных глобала и помещая их под другой глобальный уровень верхнего уровня), вы можете также думать об использовании init крюк в shim config option

EDIT 2: некоторые связанные с писаки вывешены в этом вопросе: Configuring RequireJS to load from multiple CDNs

+0

Похоже, это правильно, что мне нужно. Благодаря! Позвольте мне поиграть с этим немного. * Готово сделать кофе * –

+0

@AdamRackis см. Еще один пример плагина, связанного в приведенном выше редактировании – explunit

+0

Я тоже это проверю, спасибо –

Смежные вопросы