Alfresco 艾考调试

Alfresco Aikau debugging

在 Alfresco Share 中,搜索页面是使用 Aikau 实现的。 我对更一般的问题感兴趣,是否可以调试 Aikau 小部件?

我找到了一些关于此事的链接,但他们更多地谈论日志记录而不是实际的 javascript 调试:

假设我有以下 Aikau 小部件 alfresco/search/AlfSearchResult 和其中的以下方法:

/**
       * This function is called to create a 
       * [SearchResultPropertyLink]{@link module:alfresco/renderers/SearchResultPropertyLink} widget
       * to render the displayName of the result. It can be overridden to replace the default widget 
       * with a reconfigured version. 
       * 
       * @instance
       */
      createDisplayNameRenderer: function alfresco_search_AlfSearchResult__createDisplayNameRenderer() {
         // jshint nonew:false
         var config = {
            id: this.id + "_DISPLAY_NAME",
            currentItem: this.currentItem,
            pubSubScope: this.pubSubScope,
            propertyToRender: "displayName",
            renderSize: "large",
            newTabOnMiddleOrCtrlClick: this.newTabOnMiddleOrCtrlClick,
            defaultNavigationTarget: this.navigationTarget
         };
         if (this.navigationTarget)
         {
            config.navigationTarget = this.navigationTarget;
         }
         new SearchResultPropertyLink(config, this.nameNode);
      }

有什么方法可以在使用 this.currentItem 的行插入断点并停止执行,以便我评估它的属性?

是的,您可以通过多种方式调试 Aikau...首先要做的是确保您已启用 运行 "client-debug" 模式(在共享或在您的自定义 Aikau 客户端中)。

例如,在 Share 中您想要更新 /WEB-INF/classes/alfresco/share-config.xml 文件以更改:

<config>
  <flags>
     <client-debug>false</client-debug>

...成为...

<config>
  <flags>
     <client-debug>true</client-debug>

您需要重新启动共享才能使更改生效。然后您会看到主 header 菜单栏中有一个 "Debug Menu" 项。如果打开它,您可以通过将 "Debug Logging" 和 "Show All Logs" 切换为 true 来启用日志记录。

这将导致日志输出出现在您的浏览器开发人员工具控制台中。您还可以微调日志输出以仅显示错误或警告并提供 RegEx 表达式以匹配特定的日志输出。

启用客户端调试后,浏览器加载的 JavaScript 源将被解压缩。这将使您更容易添加断点。

因为 Surf 将所有必需的模块源代码聚合到一个资源中(出于性能和缓存原因),您将需要找到 Aikau 源文件 - 最简单的方法是使用 "CTRL-P" (in Chrome) 打开资源并在出现的框中键入 "surf" - 这将始终首先找到 Aikau 源代码。

Firefox 的

Firebug 可以更好地处理跨资源查找,因此您可以只使用 "CTRL-F" 然后粘贴到您想要中断的行。

您可以像往常一样在此资源中添加断点,浏览器将在断点处中断。

除了设置断点,您还可以使用 DebugLog 小部件。这可以从 "Debug Menu" 切换并显示正在制作的所有发布和订阅。

也可以在开发过程中直接在页面中包含和配置 alfresco/services/LoggingServicealfresco/logging/DebugLog 小部件。我们对所有单元测试页面都采用这种方法。这在开发过程中可能是一种方便的方法,并且可以在您完成开发后将其删除。

这个 presentation 虽然很旧,但也包含一些有用的调试技巧(请参阅幻灯片 56 之后)。