Как настроить редактор сценариев для разрешения путей модулей AMD

Я пытаюсь использовать scripted, но не могу понять, как сообщить редактору, где находятся мои модули AMD. Модули, относящиеся к редактируемому в данный момент файлу, кажется, разрешаются нормально, но когда я редактирую файл из пакета, который имеет зависимости от другого пакета, редактор просто не может их найти:

У меня есть проект dojo с такой структурой: - web - index.php - js/src - dojo - dijit - dojox - mymodule - myWidget.js

И скажем, если я поставлю "dojo/dom" в качестве зависимости от myWidget.js, редактор жалуется, что не находит модуль dojo/dom.

Есть идеи ?

Спасибо.

Филипп


person Philippe    schedule 05.03.2013    source источник


Ответы (1)


Scripted попытается «обнаружить» вашу конфигурацию AMD, просматривая html-файлы, используя некоторые шаблоны.

Алгоритм обнаружения ищет определенные закономерности. Но алгоритм немного хрупок в том смысле, что если ваш проект не соответствует одному из реализованных нами шаблонов, он не сможет найти конфигурацию.

Это, скорее всего, то, что происходит с вашим проектом.

Не могли бы вы предоставить более подробную информацию о структуре вашего проекта?

В частности, Scripted начнет свое обнаружение с html-файла, который загружает requirejs. Поэтому, чтобы предоставить более конкретную информацию о том, почему он не работает в вашем проекте, нам нужно знать, где этот html-файл находится в вашем проекте и как он загружает requirejs и настраивает его.

Если вы хотите увидеть несколько примеров структур, которые работают. Некоторые из них есть в тестовых ресурсах Scripted code-base. Например, вот очень простой.

https://github.com/scripted-editor/scripted/tree/master/tests/server/test-resources/nested-web-with-scripts-folder/web-app

У него есть html-файл с именем «page.html», который загружает скрипт «main.js» через атрибут «datamain» в теге скрипта.

Если ваш проект выглядит так, он должен работать, если нет — это ошибка. Если это выглядит иначе, то трудно сказать больше, не зная, как вы используете requirejs в своем проекте.

person Kris    schedule 06.03.2013
comment
Спасибо за информацию. На самом деле мой проект использует dojo, а не requirejs. Будет ли работать, если я помещу фиктивную html-страницу, ссылающуюся на dojo.js, в корень моей структуры js, описанной выше? - person Philippe; 07.03.2013
comment
Использование какой-либо фиктивной установки requirejs, вероятно, сработает, хотя может потребоваться немного проб и ошибок, чтобы «обмануть» сценарий для поиска вашей конфигурации. Нам (разработчикам сценариев) также было бы интересно получить представление о том, как выглядит ваш проект. Может быть, мы сможем придумать «шаблон», который мы сможем обнаружить, чтобы мы действительно находили конфигурацию в вашем проекте и подобных. - person Kris; 08.03.2013
comment
На самом деле это не относится к моему макету проекта. Любая проблема dojo с пользовательскими модулями, по-видимому, имеет ту же проблему. Например, проверьте dojo-boilerplate по адресу github.com/csnover/dojo-boilerplate и попробуйте откройте src/app/main.js, вы увидите предупреждения в зависимостях, как в моем примере. - person Philippe; 26.03.2013
comment
Точно так же, если вы откроете файл в каталоге dijit, все ссылки на модули за пределами этого каталога не будут обнаружены... - person Philippe; 26.03.2013