我使用了一些第三方ES6库。当我们最小化客户端库时,将会出现大量错误。我该怎么办
答案 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节点上添加cssProcessor
和jsProcessor
属性
例如: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 表单规则编辑器可以通过箭头功能的验证。