Alfresco调试器不能打开包含import标签的js

Alfresco debugger cannot open js including an import tag

本文关键字:import 标签 js 包含 调试器 不能 Alfresco      更新时间:2023-09-26

我在社区4.0.a上实现一个自定义文档详细信息操作。这个操作使用了一个存储库webscript作为HTTP POST处理程序。

所以我去/alfresco/service/api/javascript/debugger启用js调试器工具。

但是当我尝试手动打开一个js文件,如aspects.post.json.js时,它会启动语法错误。

对于任何以:

开头的js都会这样做
<import resource="classpath:/alfresco/xxx/xxx.js">

是否有什么我应该知道使用这个调试器与这样的文件?

"import标签"是无效的javascript。这就是javascript语法感知编辑抱怨的原因。正如Florian提到的,它是在"整个"javascript被输入到解释器(rhino)之前解决的。

尽管如此,如果Alfresco将用有效的javascript替换此标记以使工具满意,那将是很好的-可能与node.js提供的require功能类似。

我已经在Alfresco JIRA中打开了一个改进请求(或者更确切地说是贡献),通过在JavaScript中提供一个干净的导入API来解决这个问题。如果您想使用它,可以在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

我从来没有尝试过,但我很确定调试器不能处理语句。调试器来自Rhino javascript引擎,导入标签是来自Alfresco的扩展。它们在脚本在Javascript引擎中实际运行之前被解析。

如果可能的话,尝试将实际的javascript代码分离到不同的.js文件中,如下所述:Alfresco Web Scripts using javascript - Part 1。

构建Web脚本代码时的第一个挑战是如何Alfresco导入额外的Javascript文件。Alfresco预计在主Web的顶部添加xml样式的标记脚本文件。这将破坏javascript验证,自动编码缩进和其他重要的编辑器功能。

这可以通过将所有Javascript代码放在单独的文件中来解决,在主Web脚本.js文件中只留下import声明。

当然,这只有在你完全控制webscript文件的情况下才有效。