Como usar uma biblioteca de minificação diferente para bibliotecas cliente AEM que a biblioteca YUI Compressor padrão?

Ambiente

AEM 6.2, 6.3 e versões posteriores

Etapas

No AEM6.2 e versões posteriores, você pode definir propriedades nos nós cq: ClientLibraryFolder que permitem que você troque o mecanismo yui pelo GCC (Google Clojure Compiler https://github.com/google/closure-compiler-js). 

Por exemplo, veja estes nós da biblioteca de clientes que usam o GCC para js:
/libs/granite/contexthub/dependencies/coralui
/etc/clientlibs/granite/coralui3
/etc/clientlibs/granite/coralui2
/libs/dam/gui/coral/components/admin/adhocassetshare/clientlibs/adhocassetshare
/libs/dam/gui/components/admin/adhocassetshare/clientlibs/shareembedded
/etc/clientlibs/screens/player/shared
/etc/clientlibs/screens/player/firmware
/libs/dam/gui/components/admin/adhocassetshare/clientlibs/shareembeddedpreview
/apps/geometrixx-instore/clientlibs

Além disso, se você quiser implementar seu próprio processador de script personalizado, implementaria essa interface java:
com.adobe.granite.ui.clientlibs.script.ScriptProcessor

Javadoc relacionado:

https://docs.adobe.com/docs/en/aem/6-2/develop/ref/diff-previous/changes/pkg_com.adobe.granite.ui.clientlibs.script.html

Isso permite definir ScriptProcessors que podem modificar fontes de script:

  • os processadores são configuráveis com opções
  • o processador pode ser usado para minificação, mas também para casos não minificados
  • uma propriedade no nó cq: ClientLibraryFolder permite definir qual processador usar

Configuração:

  • Essas propriedades extras de vários valores podem ser definidas no nó cq: ClientLibraryFoldercssProcessor e jsProcessor.
  • As opções padrão ScriptProcessors podem ser definidas através do Gerenciador de biblioteca HTML Configuração OSGi (no / system / console / configMgr interface de usuário).

Por exemplo, para usar o compressor YUI para a compactação css e o Google Closure Compiler para JS, configure essas propriedades no nó cq: ClientLibraryFolder:

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

O formato é:

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

Opções para o GCC são:

  • failOnWarning (o padrão é "false")
  • languageIn (padrão para "ECMASCRIPT5")
  • languageOut (padrão é "ECMASCRIPT5")
  • compilationLevel (padrão é "simples") (pode ser "espaço em branco", "simples", "avançado")

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online