Плагин order полезен, если у вас есть только несколько скриптов верхнего уровня, которые вы хотите загрузить по порядку, и эти скрипты не используют API модуля, поддерживаемый requirejs.Это не очень хорошо работает, если вы смешаете его / используете для загрузки модулей, которые используют API модуля define ().
В частности, order просто гарантирует, что скрипт будет загружен первым.Тем не менее, API define () определяет другие скрипты для загрузки, и плагин заказа не знает, чтобы ждать загрузки этих скриптов.
Для этой конкретной проблемы я предлагаю использовать require-jquery.js, как предложил sinsedrix,Или оберните сценарии, которые вы используете в вызовах define (). volo может помочь вам сделать это с помощью команды amdify:
volo.js amdify path/to/lemon-slider-0.2.js depends=jquery
Кроме того, я бы установил baseUrl и использовал бы «наименование модуля» для зависимостей вместо полных путей.Это позволит оптимизатору работать правильно.Вы также можете отобразить 'order' на путь requirePlugins, что поможет снизить уровень шума в линии.Я бы также создал запись путей 'jquery', чтобы, если вы включите другие плагины в вызовы define, он отобразился обратно на jquery, загруженный в ваш файл main.js.Итак, в скрипте верхнего уровня для вашей страницы:
requirejs.config({
baseUrl: '/javascript/',
paths: {
order: 'requirePlugins/require-order',
jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min'
}
});
Тогда ваш main.js может быть записан так:
define([
'order!jquery',
'order!jquery-global-plugins',
'order!globals'
], function () {
loadFonts();
}
);
Обратите внимание, что здесь использование порядка в порядке,до тех пор, пока эти зависимости сами не вызывают define ().
Но если вы упаковываете сценарии, используемые в вызовах define, вы можете избавиться от порядка!использование выше.Сохраните конфигурацию путей jquery, хотя.