2015-06-18 3 views
0

Я пытаюсь понять, как назвать модули без использования относительного пути самого модуля.Именование модулей с RequireJS

Например:

Вместо того, чтобы сделать это:

//module is defined in app/js/routers.js 
define('app/js/routers',['app/js/currentView'],function(currentView) { 

}); 

я предпочел бы сделать это:

//module is defined in app/js/routers.js 
define('routers',['app/js/currentView'],function(currentView) { 

}); 

это возможно, или это плохая идея? Очевидно, имена, которые вы даете каждому модулю, должны быть уникальными. Я думаю, что я просто не вижу точку необязательного первого параметра в вызове define, если он должен быть таким же, как и путь к скрипту, в котором он содержится.

ответ

1

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

Да, если вы собираетесь поместить модуль в файл, путь которого, по отношению к baseURL вы указываете в своей конфигурации RequireJS, это имя модуля, тогда вы делаете , а не должны предоставить имя модуля define. В самом деле, вы не должны дать имя модуля в этом случае. В RequireJS documentation указывается:

Данные [т. имена модулей] обычно генерируются инструментом оптимизации. Вы можете явно называть модули самостоятельно, но это делает модули менее переносимыми - если вы переместите файл в другой каталог, вам нужно будет изменить имя. Обычно лучше избегать кодирования в имени для модуля и просто позволить инструменту оптимизации записывать имена модулей. Инструмент оптимизации должен добавлять имена, чтобы в одном файле можно было добавить несколько модулей, чтобы обеспечить более быструю загрузку в браузере.

(курсив наш.)

+0

Эй Луи, спасибо, я думаю, было бы очень здорово, если бы RequireJS позволил поместить свои собственные имена в модули согласно некоторой конвенции, как определить («имя *», [], функция() {}). (ставит старт после имени модуля). Понимая это, я действительно не понимаю, почему нет, но, вероятно, есть веская причина. –

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