Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.
SOLVED

[AEM 6.4.2] GCC JS Processor not working

Avatar

Level 1

Hello, everyone!

I'm trying to change the JS compiler from Yui to GCC (to use ES6 in our project), I have read the official document ( Change the minification engine for client libraries in AEM ), but for some reason the GCC is not working.

What we have tried:

This doesn't work.

  • Adding the jsProcessor inside the clientLibraryFolder like this:

<?xml version="1.0" encoding="UTF-8"?>

<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"

    jcr:primaryType="cq:ClientLibraryFolder"

    allowProxy="{Boolean}true"

    embed="[project.components]"

    categories="project.all"

    jsProcessor="[default:none,min:gcc;languageIn=ECMASCRIPT6]"/>

This doesn't work either.

If we turn it back to min:yui on the configMgr, it works again, but just minfies the ES5 functions, if we use arrow functions or let/const, it doesn't transform into ES5 (the main reason why we're changing to GCC).

Could you guys please help us?

Thank you!

1 Accepted Solution

Avatar

Correct answer by
Level 10

Cust Care found a ticket related to this and says this doc not valid for 6.4. I recommend opening a ticket so this can be dealt with.

View solution in original post

8 Replies

Avatar

Level 10

I am checking with the team if this doc is still valid.

Avatar

Level 1
Was there any resolution on this? Im on 6.5 and it still does not work for me

Avatar

Correct answer by
Level 10

Cust Care found a ticket related to this and says this doc not valid for 6.4. I recommend opening a ticket so this can be dealt with.

Avatar

Level 1

Thank you for your time, Smacdonald!

I will do that.

Best regards,

Avatar

Level 7
hi folks, On 6.5.5 I tried languageIn=ECMASCRIPT_2015 and it doesn't seem to work. Does it work for anyone ? thanks Fiona

Avatar

Level 7

 

Hi there,

I set up an OSGI config file called com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.xml with these contents and gcc seems to work o.k.
for JS with some caveats.
I still get some files failing minification because of "strict" errors which I couldn't seem to get around with configuration options in this file.
In the end, I had to fix the errors in the files to get the gcc to minimize them.


<
jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
htmllibmanager.disable.replacement="[]"
htmllibmanager.path.list="[/apps,/libs,/etc]"
htmllibmanager.maxDataUriSize="0"
htmllibmanager.useFileSystemOutputCache="{Boolean}true"
htmllibmanager.fileSystemOutputCacheLocation=""
htmllibmanager.timing="{Boolean}false"
htmllibmanager.clientmanager="granite.clientlibrarymanager"
htmllibmanager.maxage="-1"
htmllibmanager.debug="{Boolean}false"
htmllibmanager.forceCQUrlInfo="{Boolean}false"
htmllibmanager.processor.css="[min:yui]"
htmllibmanager.minify="{Boolean}true"
htmllibmanager.debug.init.js="window.CQ_initial_log_level\='INFO';"
htmllibmanager.excluded.path.list="[/etc/commerce/classifications,/etc/commerce/collections,/etc/commerce/payment-methods,/etc/commerce/products,/etc/commerce/shipping-methods,/etc/reports/auditreport,/etc/reports/compreport,/etc/segmentation,/etc/taskmanagement,/etc/workflow/instances]"
htmllibmanager.defaultthemename="default"
htmllibmanager.defaultuserthemename="default"
htmllibmanager.processor.js="[min:gcc;languageIn\=ECMASCRIPT_2015]"
htmllibmanager.gzip="{Boolean}true"
htmllibmanager.longcache.patterns="[]"
htmllibmanager.longcache.format="lc-%s-lc"
/>

 

 

It might be that some of files are minifying for you and others aren't.

Also, it might be worth clearing the clientlibs caches in AEM as described here, so you get a fresh view of them.

https://docs.adobe.com/content/help/en/experience-manager-65/developing/introduction/clientlibs.html

 

 

 

Avatar

Level 1

After 2 months looking for the solution, this worked for me:

 

min:gcc;languageIn=ECMASCRIPT_2016;languageOut=ECMASCRIPT_2016;compilationLevel=simple;obfuscate=true

 

Don't put "default:none", this was the reason Gcc wasn't working