ES6语法在缩小IN AEM 6.0时给出错误

问题描述 投票:1回答:2

我使用了一些第三方ES6库。当我们正在缩小客户端时,很多错误即将到来。我该怎么办

aem cq5
2个回答
5
投票

AEM 6.0 - YUI缩小引擎 - 不支持ES6。您将不得不使用较低版本的javascript。查看可能在6.0中启用此功能的Service Pack。或者如果您的项目设置使用webpack / npm等,那么像babel这样的转发器可以做到这一点。


AEM 6.2起

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

来自AEM docs

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

转到http://localhost:4502/system/console/configMgr的Apache Felix配置管理器

查找和编辑Adobe Granite HTML库管理器。

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

将值JS Processor Default Configs设置为min:gcc。

如果用分号分隔,则可以传递选项,例如分:GCC;混淆=真。

单击“保存”以保存更改。

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

对于系统范围的配置,将此配置添加为HTML库管理器OSGi运行模式配置,这样构建过程负责在所有其他环境(dev,stage,test,...)中更新此属性,从而节省您的在任何地方手动编辑此属性。

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

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

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


0
投票

有一个缩小的js库文件,由其他一些缩小引擎缩小。 AEM 6.0不支持该缩小文件。所以我把这个文件的未经编辑的版本放在clientlib中并开始工作。

© www.soinside.com 2019 - 2024. All rights reserved.