¿Cómo usar una biblioteca de minificación diferente para las bibliotecas de clientes AEM que la biblioteca predeterminada de YUI Compressor?

Entorno

AEM 6.2, 6.3 y versiones posteriores

Pasos

En AEM 6.2 y versiones posteriores, puede establecer propiedades en los nodos cq:ClientLibraryFolder que le permiten intercambiar el motor yui con GCC (Google Clojure Compiler https://github.com/google/closure-compiler-js). 

Por ejemplo, vea estos nodos de biblioteca cliente que usan GCC para js:
/libs/granite/contexthub/dependencias/coralui
/etc/clientlibs/granite/coralui3
/etc/clientlibs/granite/coralui2
/libs/dam/gui/coral/components/admin/adhocassetshare/clientlibs/adhocassetshare
/libs/dam/gui/componentes/admin/adhocassetshare/clientlibs/shareembedded
/etc/clientlibs/screens/player/shared
/etc/clientlibs/screens/player/firmware
/libs/dam/gui/components/admin/adhocassetshare/clientlibs/shareembeddedpreview
/apps/geometrixx-tienda/clientlibs

Además, si desea implementar su propio procesador de scripts personalizado, entonces implementará esta interfaz 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

Esto le permite definir procesadores de script que pueden modificar las fuentes de los scripts:

  • los procesadores son configurables con opciones
  • el procesador puede usarse para minificación, pero también para casos no micronizados
  • una propiedad en el nodo cq:ClientLibraryFolder le permite definir qué procesador usar

Configuración:

  • Estas propiedades multivalores adicionales se pueden establecer en el nodo cq:ClientLibraryFoldercssProcessor y jsProcessor.
  • Las opciones predeterminadas de ScriptProcessors se pueden configurar a través de la configuración OSGi de Gestor de biblioteca HTML (en la interfaz de usuario /system/console/configMgr ).

Por ejemplo, para usar el compresor YUI para la minificación css y Google Closure Compiler para JS, establezca estas propiedades en el nodo cq:ClientLibraryFolder:

cssProcessor: ["default:none", "min:yui"]
jsProcessor: ["default:none", "min:gcc;compilationLevel=advanced"]
usar el script para preprocesar, luego gcc para minimizar y ofuscar:
jsProcessor: [
   "default:typescript",
   "min:typescript",
   "min:gcc;obfuscate=true"
]

el formato es:

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

Las opciones para GCC son:

  • failOnWarning (de forma predeterminada, es "false")
  • languageIn (de forma predeterminada "ECMASCRIPT5")
  • languageOut (de forma predeterminada "ECMASCRIPT5")
  • compilationLevel (de forma predeterminada es "simple") (puede ser "espacio en blanco", "simple", "avanzado")

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea