Comment utiliser une bibliothèque de minification différente des bibliothèques client AEM que la bibliothèque YUI Compressor par défaut ?

Environnement

AEM 6.2, 6.3 et versions ultérieures

Étapes

Dans AEM 6.2 et versions ultérieures, vous pouvez définir des propriétés sur les nœuds cq:ClientLibraryFolder qui vous permettent de permuter le moteur yui avec GCC (Google Clojure Compiler https://github.com/google/closure-compiler-js). 

Par exemple, consultez ces nœuds de bibliothèque clients utilisant GCC pour 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

En outre, si vous souhaitez implémenter votre propre processeur de script personnalisé, vous devez implémenter cette interface Java :
com.adobe.granite.ui.clientlibs.script.ScriptProcessor

JavaDoc connexe :

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

Cela vous permet de définir des ScriptProcessors capables de modifier les sources de script :

  • Les processeurs sont configurables avec des options.
  • Le processeur peut être utilisé pour la minification, mais aussi pour les cas non minifiés.
  • Une propriété sur le nœud cq:ClientLibraryFolder vous permet de définir le processeur à utiliser

Configuration:

  • Ces propriétés supplémentaires à valeurs multiples peuvent être définies sur le nœud cq:ClientLibraryFolder node: cssProcessor et jsProcessor.
  • Les options par défaut ScriptProcessors peuvent être définies via la configuration OSGi HTML Library Manager (dans l'interface utilisateur /system/console/configMgr).

Par exemple, pour utiliser le compresseur YUI pour la minimisation CSS et Google Closure Compiler pour JS, définissez ces propriétés sur le nœud 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"
]

Le format est le suivant :

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

Les options de GCC sont les suivantes :

  • failOnWarning (par défaut sur false)
  • languageIn (defaults to "ECMASCRIPT5")
  • languageOut (defaults to "ECMASCRIPT5")
  • compilationLevel (par défaut, « simple ») (peut être « whitespace », « simple », « avancé »)

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne