AEM のクライアントライブラリに対し、デフォルトの YUI Compressor ライブラリとは違う縮小ライブラリを使用するには、どうすればよいですか。

環境

AEM 6.2 および 6.3 以降のバージョン

手順

AEM 6.2 以降のバージョンでは、cq:ClientLibraryFolder ノードでプロパティを設定し、YUI エンジンを GCC(Google Closure Compiler:https://github.com/google/closure-compiler-js)と入れ替えることができます。 

JS 用に GCC を使用するクライアントライブラリノードの例は次のとおりです。
/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

また、独自のカスタムスクリプトプロセッサーを実装する場合は、Java インターフェイスの
com.adobe.granite.ui.clientlibs.script.ScriptProcessor を実装します。

関連 JavaDoc は次のとおりです。

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

これにより、次のようにスクリプトのソースを変更できる ScriptProcessor を定義できます。

  • オプションを使用してプロセッサーの設定を変更できます。
  • 縮小だけでなく、それ以外の用途にもプロセッサーを使用できます。
  • cq:ClientLibraryFolder ノードのプロパティによって、使用するプロセッサーを定義できます。

設定:

  • cq:ClientLibraryFolder ノードで追加の複数値プロパティの cssProcessor および jsProcessor を設定できます。
  • デフォルトの ScriptProcessor オプションは、HTML ライブラリマネージャーの OSGi 設定(/system/console/configMgr UI)を利用して設定できます。

例えば、CSS の縮小には YUI Compressor、JS には Google Closure Compiler を使用する場合は、cq:ClientLibraryFolder ノードで次のようにプロパティを設定します。

cssProcessor: ["default:none", "min:yui"]
jsProcessor: ["default:none", "min:gcc;compilationLevel=advanced"]
事前処理に typescript を使用し、縮小および不明化に GCC を使用する場合:
jsProcessor: [
   "default:typescript",
   "min:typescript", 
   "min:gcc;obfuscate=true"
]

形式は次のようになります。

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

GCC のオプションは次のとおりです。

  • failOnWarning(デフォルトは「false」)
  • languageIn (defaults to "ECMASCRIPT5")
  • languageOut (defaults to "ECMASCRIPT5")
  • compilationLevel(デフォルトは「simple」。「whitespace」、「simple」、「advanced」に設定可能)

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー