Alfresco отладчик не может открыть JS, включая тег импорта - PullRequest
1 голос
/ 14 ноября 2011

Я реализую настраиваемое действие с подробной информацией о документе в разделе Поделиться в community 4.0.a . Это действие использует веб-скрипт репозитория, который действует как обработчик HTTP POST.

Итак, я перешел к /alfresco/service/api/javascript/debugger, чтобы включить инструмент отладчика js.

Но когда я пытаюсь открыть файл js вручную, как aspect.post.json.js, он запускает синтаксическую ошибку.

он делает это с любым js, который начинается с:

<import resource="classpath:/alfresco/xxx/xxx.js">

Что-нибудь, о чем я должен знать, чтобы использовать этот отладчик с такими файлами?

Ответы [ 4 ]

2 голосов
/ 10 января 2012

«Тег импорта» не является допустимым JavaScript. Вот почему редакторы, осведомленные о синтаксисе JavaScript, жалуются. Как упоминает Флориан, он разрешается до того, как «весь» javascript передается интерпретатору (носорогу).

Тем не менее, было бы неплохо, если бы Alfresco заменил этот тег допустимым javascript, чтобы инструменты были довольны - возможно, чем-то похожим на функцию require, которую предоставляет node.js.

2 голосов
/ 09 апреля 2012

Я открыл запрос на улучшение (или, скорее, вклад) в Alfresco JIRA, который решает эту проблему, предоставляя чистый API импорта в JavaScript.Если вы хотите поиграть с ним, вы можете получить файлы патчей в виде вложений на https://issues.alfresco.com/jira/browse/ALF-13631

. Таким образом, ваш пример

<import resource="classpath:/alfresco/xxx/xxx.js">

станет

importScript("legacy", "classpath:/alfresco/xxx/xxx.js", true); //Repository tier
importScript("classpath:/alfresco/xxx/xxx.js", true); //Share tier
1 голос
/ 13 декабря 2011

Я никогда не пробовал, но я почти уверен, что отладчик не может обработать операторы.Отладчик происходит от движка javascript Rhino, а теги import являются расширением Alfresco.Они разрешаются до того, как скрипт действительно будет запущен в движке Javascript.

0 голосов
/ 11 марта 2015

Если возможно, попробуйте разделить фактический код JavaScript на разные файлы .js, как описано здесь: Веб-сценарии Alfresco с использованием Javascript - часть 1 .

Первая проблема при структурировании кода веб-скрипта заключается в том, как Alfresco импортирует дополнительные файлы Javascript. Альфреско ожидает теги в стиле XML в верхней части основного веба файл сценария. Это нарушит валидацию JavaScript, автоматический код отступ и другие важные функции редактора.

Эту проблему можно решить, поместив весь код Javascript в отдельные файлы, оставляя только объявления импорта в основном файле .js веб-скрипта.

Конечно, это работает, только если вы получили полный контроль над файлами Webscript ..

...