How to use a different minification library for AEM client libraries than the default YUI Compressor library?


AEM 6.2, 6.3 and later versions


In AEM6.2 and later versions, you can set properties on cq:ClientLibraryFolder nodes that let you swap out yui engine with GCC (Google Clojure Compiler 

For example, see these client library nodes that use GCC for js:

In addition, if you want to implement your own custom script processor, then you would implement this java interface:

Related javadoc:

This allows you to define ScriptProcessors that can modify script sources:

  • the processors are configurable with options
  • the processor can be used for minification, but also for non-minified cases
  • a property on the cq:ClientLibraryFolder node allows you to define which processor to use


  • These extra multivalue properties can be set on the cq:ClientLibraryFolder node: cssProcessor and jsProcessor.
  • The default ScriptProcessors options can be set via the HTML Library Manager OSGi configuration (in the /system/console/configMgr UI).

For example, to use YUI compressor for css minification and Google Closure Compiler for JS set these properties on the cq:ClientLibraryFolder node: 

cssProcessor: ["default:none", "min:yui"]
jsProcessor: ["default:none", "min:gcc;compilationLevel=advanced"]
use typescript to preprocess, then gcc to minify and obfuscate:
jsProcessor: [

the format is: 

config:= mode ":" processorName options*;
mode:= "default" | "min";
processorName := "none" | ;
options := ";" option;
option := name "=" value;

Options for GCC are:

  • failOnWarning (defaults to "false")
  • languageIn (defaults to "ECMASCRIPT5")
  • languageOut (defaults to "ECMASCRIPT5")
  • compilationLevel (defaults to "simple") (can be "whitespace", "simple", "advanced")