Verwenden einer anderen Minimierungs-Bibliothek für AEM-Clientbibliotheken als die standardmäßige YUI Compressor-Bibliothek

Umgebung

AEM 6.2, 6.3 und spätere Versionen

Schritte

In AEM 6.2 und späteren Versionen können Sie Eigenschaften auf cq:ClientLibraryFolder-Knoten festlegen, mit denen Sie YUI-Engine mit GCC austauschen können (Google Closure Compiler https://github.com/google/closure-compiler-js). 

Sehen Sie sich zum Beispiel diese Client-Bibliotheksknoten an, die GCC für JS verwenden:
/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

Wenn Sie außerdem Ihren eigenen Skriptprozessor implementieren möchten, dann implementieren Sie dieses Java-Interface:
com.adobe.granite.ui.clientlibs.script.ScriptProcessor

Entsprechendes JavaDoc:

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

Damit können Sie ScriptProcessors definieren, die Skriptquellen modifizieren können:

  • Die Prozessoren sind mit Optionen konfigurierbar.
  • Der Prozessor kann für die Minimierung, aber auch für nicht-minimierte Fälle verwendet werden
  • Eine Eigenschaft auf dem cq:ClientLibraryFolder-Knoten erlaubt es Ihnen, den zu verwendenden Prozessor zu definieren.

Konfiguration:

  • Diese zusätzlichen mehrwertigen Eigenschaften können auf dem Knoten cq:ClientLibraryFolder festgelegt werden: cssProcessor und jsProcessor.
  • Die Standardkonfiguration der ScriptProcessors-Optionen kann über die HTML- Bibliotheksmanager -OSGi-Konfiguration (in der /system/console/configMgr UI) eingestellt werden.

Um beispielsweise YUI Compressor für die CSS-Minimierung und den Google Closure Compiler für JS zu verwenden, setzen Sie diese Eigenschaften auf cq:ClientLibraryFolder-Knoten:

cssProcessor: "["default:none", "min:yui"]
jsProcessor: "["default:none", "min:gcc;compilationLevel=advanced"]
typescript zur Vorverarbeitung verwenden, dann GCC zum Minimieren und Obfuszieren:
jsProcessor: [
    "default:typescript",
    "min:typescript",
    "min:gcc;obfuscate=true"
]

Das Format lautet:

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

Optionen für GCC sind:

  • failOnWarning (Standardeinstellung ist „false“)
  • languageIn (defaults to "ECMASCRIPT5")
  • languageOut (defaults to "ECMASCRIPT5")
  • compilationLevel (Standardeinstellung ist „simple“) (kann „whitespace“, „simple“ oder „advanced“ sein)

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie