2012-05-07 2 views
1

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

define(['jquery','dep1','dep2','mymodule'],function($,foo,bar,plugin){ 
    //all loaded 
}); 

Из-за природы погрузчиков AMD заказ не гарантируется. В order plugin также указано, что плагин не должен использоваться с вызовами определения, таким образом, определения модулей. И the API гарантирует только порядок аргументов, а не порядок исполнения. Поэтому, если есть случай, когда mymodule загружается до jQuery, он не работает.

Как я могу гарантировать загрузку необходимых зависимостей перед плагинами?

ответ

1

Во-первых, это не выглядит, как вы используете плагин заказа; для плагина заказа вам необходимо добавить order! к имени файла.

Во-вторых, ваш файл mymodule также должен определить jQuery как требование. Это обеспечит загрузку jquery перед mymodule без необходимости зависеть от плагина заказа.

Модуль 1

define(['jquery','dep1','dep2','mymodule'],function($,foo,bar,plugin){ 
    //all loaded 
}); 

mymodule.js

define(['jquery'],function($){ 
    //all loaded 
}); 
0

вы можете сделать это:

define(['jquery', 'dep1', 'dep2'], function() { 
    //load myModule separately 
    var m = require('mymodule'); 
});