我使用了一些第三方ES6库。当我们正在缩小客户端时,很多错误即将到来。我该怎么办
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节点上添加cssProcessor
和jsProcessor
属性,例如:jsProcessor="[min:gcc;obfuscate=true;languageIn=ECMASCRIPT6;languageOut=ECMASCRIPT3]
有关不同的可用配置选项,请参阅Google Closure Compiler docs。
有一个缩小的js库文件,由其他一些缩小引擎缩小。 AEM 6.0不支持该缩小文件。所以我把这个文件的未经编辑的版本放在clientlib中并开始工作。