Alfresco 艾考调试
Alfresco Aikau debugging
在 Alfresco Share 中,搜索页面是使用 Aikau 实现的。
我对更一般的问题感兴趣,是否可以调试 Aikau 小部件?
我找到了一些关于此事的链接,但他们更多地谈论日志记录而不是实际的 javascript 调试:
- http://docs.alfresco.com/5.1/tasks/dev-extensions-share-tutorials-debugging.html
- https://github.com/Alfresco/Aikau/blob/master/tutorial/chapters/Tutorial4.md
假设我有以下 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/LoggingService
和 alfresco/logging/DebugLog
小部件。我们对所有单元测试页面都采用这种方法。这在开发过程中可能是一种方便的方法,并且可以在您完成开发后将其删除。
这个 presentation 虽然很旧,但也包含一些有用的调试技巧(请参阅幻灯片 56 之后)。
在 Alfresco Share 中,搜索页面是使用 Aikau 实现的。 我对更一般的问题感兴趣,是否可以调试 Aikau 小部件?
我找到了一些关于此事的链接,但他们更多地谈论日志记录而不是实际的 javascript 调试:
- http://docs.alfresco.com/5.1/tasks/dev-extensions-share-tutorials-debugging.html
- https://github.com/Alfresco/Aikau/blob/master/tutorial/chapters/Tutorial4.md
假设我有以下 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/LoggingService
和 alfresco/logging/DebugLog
小部件。我们对所有单元测试页面都采用这种方法。这在开发过程中可能是一种方便的方法,并且可以在您完成开发后将其删除。
这个 presentation 虽然很旧,但也包含一些有用的调试技巧(请参阅幻灯片 56 之后)。