Alfresco Aikau调试

And*_*hut 3 alfresco-share aikau

在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);
      }
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*per 5

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

例如,在“共享”中,您想要更新/WEB-INF/classes/alfresco/share-config.xml文件以进行更改:

<config>
  <flags>
     <client-debug>false</client-debug>
Run Code Online (Sandbox Code Playgroud)

...成为...

<config>
  <flags>
     <client-debug>true</client-debug>
Run Code Online (Sandbox Code Playgroud)

您需要重新启动共享才能使更改生效。然后您会看到在主标题菜单栏中有一个“调试菜单”项。如果打开此窗口,则可以通过将“调试日志记录”和“显示所有日志”切换为true来启用日志记录。

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

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

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

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

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

除了设置断点,您还可以使用DebugLog小部件。可以从“调试菜单”中进行切换,并显示所有正在进行的发布和订阅。

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

演示文稿虽然很旧,但也包含一些有用的调试技巧(请参见幻灯片56及以后)。