Sitecoreファースト開発ワークフロー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
ほとんどのSitecore優先プロジェクトは、少なくとも1つの コード優先 のアプリ展開から始まり、アプリroot、レンダリングroot、テンプレートルートなどの構造をSitecoreで作成します。初期展開後、アプリはSitecore優先開発へ移行できます。
SitecoreファーストワークフローでJSSアプリを開発する場合、JSSアプリはSitecoreからデータを消費しますが、そのデータの構造やSitecoreに登録されているコンポーネントの定義には責任を持ちません。
このワークフローでは、すべての開発者がそれぞれ独自のSitecore開発インスタンスを必要とし、JSSアプリはコンテンツやレイアウトデータを取得するために接続します。
以下の場合、まずSitecoreを優先するワークフローを選ぶことをお勧めします:
- このプロジェクトは、Sitecoreで働くことを好む経験豊富なSitecore開発者によって主導されています。
- プロジェクトは複雑なコンテンツやバックエンドのアーキテクチャ要件を抱えています。
- Sitecoreの開発者はJavaScriptアプリケーションも実装しています。
- JSSアプリは同じデプロイプロセスでデプロイおよびバージョン設定を行います。
JSSアプリでSitecoreを優先して使うのは、通常のSitecoreサイトを作るのとほぼ同じですが、いくつかの違いがあります。
レンダリングの作成
レンダリング項目を作成する際は、View renderingsやXSLTなどの代わりに、このJson Renderingテンプレートを使用してください。このレンダリングテンプレートは 、レイアウトサービスから発行されると自動的にJSONにレンダリングされます。 Json Renderingテンプレートには、Rendering Contents Resolverの設定、統合GraphQLクエリの設定、プレースホルダーの設定など、追加フィールドが含まれています。
また、Json Renderingテンプレートに特有の「コンポーネント名」フィールドは、JSSアプリに登録されたコンポーネント名と一致する文字列です。例えば、コンポーネント名をFooとしたレンダリングを作成した場合、JSSアプリはコンポーネントマッピングで登録されたFoo.jsコンポーネントが必要になります "Foo" > Foo.js。コンポーネント名がマッピングできない場合、JSSアプリはSitecoreから届いた欠けているコンポーネント名の仮名を表示します。これにより、フロントエンド開発者がコンポーネントのビューを実装する前に、コンポーネント階層をスキャフォールド化できます。
プレースホルダーをレンダリングに追加する際、そのプレースホルダーはレンダリングアイテムのLayout Service Placeholdersフィールドにも追加しなければなりません。それ以外の場合、Layout Serviceは子プレースホルダーをレンダリングしようとはせず、Layout Serviceデータにもレンダリングが追加されません。
ルートの編集と作成
Sitecoreでルートを作成するのは、従来のSitecoreサイトにページを追加するのと同じです。
スクリプト化されたコンポーネントスキャフォールディング
Sitecoreファーストアプリケーションで作業する場合、新しいコンポーネントを追加する作業は繰り返しの手順(レンダリングアイテム、データソーステンプレートアイテム、データソースの位置フォルダを作成し、それらをリンクする)を伴います。これをシンプルにするために、JSSコンポーネントのSitecoreインフラストラクチャをスキャフォールドするためのJSS CLIコマンドがあります:
- jss deploy component新しいコンポーネントをデプロイします。これはコードファースト開発で使われる関数manifest.addComponent()似ていますが、新しいコンポーネントを直接Sitecoreデータベースにデプロイします。
- jss deploy templateコンテンツテンプレートや設定項目などとして新しいSitecoreテンプレートをデプロイします。
インクリメンタル展開
Sitecore優先開発プロセスでは、新しいコードアーティファクトはJSS CLIコマンドjss deploy filesのみで展開されます。パッケージベースのデプロイメントは、jss deploy appを使った最初のデプロイメント後のコードファースト開発シナリオのみを意図しています。