クライアントライブラリリソースのHTL コンパイルエラーにより、AEM Cloud Managerのデプロイメントが失敗する

✨ このコンテンツはAIが生成したもので、不正確である可能性があります。 生成AI用語

この記事では、クライアントライブラリのCloud Manager リソースのJavaScript テンプレートリテラルがAEM パーサーによって誤って解釈される場合に、HTL コンピレーションエラーによって引き起こされるHTML デプロイメントエラーを解決する方法について説明します。

説明 description

環境

  • Adobe Experience Manager(AEM)Cloud Manager(すべてのバージョン)

症状

Cloud Managerのビルドは、すべての環境(開発、ステージ、実稼動環境)のデプロイメントステップで失敗します。 パイプラインログには、クライアントライブラリリリソースファイル内のHTL コンパイルエラーが表示されます。 パーサーは次のようなエラーを報告します。

  • mismatched input '(' expecting {'}', '@'}

影響を受けるリソースには、クライアントライブラリ内のHTML ファイルが含まれ、JavaScript テンプレートリテラル式(例:${getAccessToken()})が.html ファイルに含まれています。 これらはHTL式として解釈され、デプロイメント中にパーサーエラーが発生します。

原因

.html個のクライアントライブラリリソース内のJavaScript テンプレートリテラル式(${...})がAEM パーサーによってHTL式として解釈され、HTL コンパイル手順で構文エラーが発生するため、デプロイメントが失敗します。

解決策 resolution

問題を解決するには、次の手順に従います。

  1. 影響を受けるクライアントライブラリのリソースファイルをコードベースで確認します(例:/apps/.../clientlibs/.../resources/内のHTML ファイル)。
  2. これらの.html ファイル内の${...}構文を使用して、JavaScript テンプレートリテラル式を確認します。
  3. これらのエクスプレッションがJavaScriptとして意図されている場合は、AEM パーサーによってHTL エクスプレッションとして解釈されないようにしてください。
  4. テンプレートリテラルを含むJavaScript コードを、.html個のリソースに直接埋め込む代わりに、.js個のファイルに移動します。 または、HTL解析の競合を避けるために、${...}構文をエスケープまたはリファクタリングします。
  5. Cloud Manager パイプラインを再実行して、HTL コンパイルエラーが解決されていることを確認します。
recommendation-more-help
experience-cloud-kcs-help-kbarticles