Отладка порядка выборки/загрузки require.js

Есть ли инструмент или функция require.js, которую я могу использовать для определения порядка извлечения и загрузки моих модулей/традиционных скриптов?

Например,

a.js:

define(['b', 'c'], function(b,c){});

b.js:

define(['d'], function(d){});

а затем main.js, который имеет

require(['a'], function(a){});

Мое предположение здесь таково:

  1. a.js будет загружен первым
  2. b.js и c.js будут загружены вторыми
  3. d.js будет загружаться последним

и модули будут загружены в порядке d -> b -> c -> a. Или, возможно, d и c одновременно (поскольку c не имеет зависимостей, подобных d), затем b и, наконец, a.

Тем не менее, я никогда не уверен на 100%, что мои предположения верны. Я могу обновить страницу 100 раз и убедиться, что у меня нет ошибок, но я все еще параноик, что 101-я попытка не сработает.

Разработчики модулей AMD, как вы это отлаживаете?


person Ken Hirakawa    schedule 07.02.2012    source источник


Ответы (1)


Для точного управления порядком загрузки модулей существует плагин порядка.

Вы также можете открыть сетевую консоль в Chrome/Firebug и т. д., чтобы увидеть, как происходит выборка.

Но ваш пример довольно прост, и у него не должно возникнуть проблем ни на 101st итерации, ни на 1001st. Я не вижу ничего, о чем нужно беспокоиться или что требует отладки.

person Ates Goral    schedule 07.02.2012
comment
В документах для плагина порядка указано, что это не обязательно для модулей, использующих define(), но бывают случаи, когда у меня есть традиционные скрипты внутри массива определения. например определить(['b', 'c', 'e.js', 'f.js']... ). Применяется ли порядок к этим традиционным сценариям? Из моего ограниченного тестирования это, похоже, не имеет никакого эффекта, то есть порядок размещения e.js и f.js не сохраняется. Есть предположения? Спасибо! - person Ken Hirakawa; 07.02.2012
comment
Поскольку обычные скрипты не используют define, который можно использовать в качестве обратного вызова, чтобы сообщить RequireJS, что модуль действительно загружен, у RequireJS, вероятно, нет прямого способа определить, когда загружен обычный скрипт (хотя я не знаю, он пытается это сделать, используя события загрузки <script> элементов). - person Ates Goral; 08.02.2012