Как использовать встроенный/сжатый Dojo для разрешения модулей Dojo, полученных из тестов?

В настоящее время с моей настройкой Intern я использую несобранную сборку Dojo при запуске своих тестов Intern; например, тестовый модуль загружает ссылки app/ProductModuleA и ProductModuleA и загружает dojo/request. Мне нужно, чтобы файл dojo/request.js находился в соответствующей структуре каталогов, чтобы модуль разрешился без ошибок и, следовательно, тест мог быть запущен. Наш код продукта использует встроенный файл dojo.js, и наши предыдущие тесты DOH также могли использовать его без каких-либо проблем — я не понимаю, как это работает, потому что я ничего не знаю о создании Dojo.

Я знаю, что видел фрагменты на различных интернет-форумах (например, здесь) и в руководстве пользователя Intern, что Intern поддерживает исходные карты, что, я думаю, предполагает возможность использования встроенного файла dojo.js в сочетании с запущенным Intern, но я не вообще ничего не нашел в деталях. Инсайты или указатели на документацию или примеры, которые я пока не смог найти?


person sparkles    schedule 11.03.2015    source источник


Ответы (2)


Одним из преимуществ AMD является то, что вам не нужно делать ничего особенного с вашим кодом при переключении между построенным и несобранным Dojo. Когда вы загружаете зависимость в первый раз, используя несобранный Dojo, загрузчик запрашивает ее по сети, а затем кэширует результат. Последующие загрузки используют кэшированную зависимость. Процесс загрузки аналогичен построенному Dojo; главное отличие в том, что все модули, встроенные в построенный Dojo, предварительно кэшируются. Загрузчику не нужно запрашивать их по сети в первый раз, потому что они начинаются в кэше модуля.

Чтобы Intern мог использовать встроенный Dojo, вам просто нужно убедиться, что вы используете встроенный Dojo в качестве загрузчика во время тестов. Вы можете сделать это, установив параметр useLoader в конфигурации стажера.

person jason0x43    schedule 14.03.2015

Я попробовал то, что предложил Джейсон, и это все равно не сработало — я получал 404 для модуля Dojo_ROOT.js, хотя ни в тестах, ни в файлах продукта это явно не загружалось. Я уверен, что это связано с чем-то уникальным в среде сборки моего продукта. Ничего страшного, я пока воспользуюсь исходным кодом Dojo и вернусь к нему позже.

person sparkles    schedule 13.04.2015