ES6语法在AEM 6.0中的缩小中给出错误

时间:2018-08-30 07:15:41

标签: aem cq5

我使用了一些第三方ES6库。当我们最小化客户端库时,将会出现大量错误。我该怎么办

4 个答案:

答案 0 :(得分:5)

AEM 6.0-YUI缩小引擎-不支持ES6。您必须使用较低版本的javascript。请检出可能在6.0中启用此功能的Service Pack。或者,如果您的项目设置使用webpack / npm等,那么像babel这样的编译器可以解决这个问题。


AEM 6.2及更高版本

您可以选择将配置管理器中的缩小引擎设置为GCC-支持ES6语法的Google closure compiler-换句话说,是编译ES6 +。

AEM docs

  

YUI被设置为AEM中的默认缩小器。要将其更改为GCC,   请按照以下步骤操作。

     

在以下位置转到Apache Felix Config Manager   http://localhost:4502/system/console/configMgr

     

找到并编辑Adobe Granite HTML库管理器。

     

启用“缩小”选项(如果尚未启用)。

     

将“ JS处理器默认配置”值设置为min:gcc。

     

如果用分号分隔的选项可以通过,例如   min:gcc; obfuscate = true。

     

点击保存以保存更改。

您可以选择在每个clientlib或系统范围内配置预处理器:

对于系统范围的配置,请将此配置添加为HTML Library Manager OSGi运行模式配置,这样,构建过程将负责在所有其他环境(开发,测试,测试...)中更新此属性,避免您在任何地方手动编辑此属性。

PID:com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl

对于clientlib特定配置,在clientlib节点上添加cssProcessorjsProcessor属性 例如:jsProcessor="[min:gcc;obfuscate=true;languageIn=ECMASCRIPT6;languageOut=ECMASCRIPT3]

有关不同的可用配置选项,请参考Google Closure Compiler docs

答案 1 :(得分:0)

存在一个缩小的js库文件,该文件已由其他缩小引擎进行了缩小。 AEM 6.0不支持该缩小的文件。因此,我使用了该文件的未压缩版本,并将其放入clientlib,它开始工作。

答案 2 :(得分:0)

在 AEM 6.5.8 中,将 HTML 库管理器:js 默认处理器更改为 min:gcc。对于客户端库文件夹,添加:jsProcessor=[min:gcc;obfuscate=true;languageIn=ECMASCRIPT_2019;languageOut=ECMASCRIPT3]。然后工作。

答案 3 :(得分:0)

需要说明的是,此配置不会发生缩小和反编译,只有 AEM 表单规则编辑器可以通过箭头功能的验证。