Expand my Community achievements bar.

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