---
title: "Sitecoreファースト開発ワークフロー"
slug: "sitecore-first-development-workflow"
abstract: "JSS Sitecore最初の開発の概要"
---
# Sitecoreファースト開発ワークフロー

ほとんどのSitecore優先プロジェクトは、少なくとも1つの [コード優先](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/code-first-development-workflow.html "Code-first development workflow") のアプリ展開から始まり、アプリroot、レンダリングroot、テンプレートルートなどの構造をSitecoreで作成します。初期展開後、アプリは[Sitecore優先開発へ移行](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/transitioning-from-code-first-to-sitecore-first.html "Transitioning from code-first to Sitecore-first")できます。

SitecoreファーストワークフローでJSSアプリを開発する場合、JSSアプリはSitecoreからデータを消費しますが、そのデータの構造やSitecoreに登録されているコンポーネントの定義には責任を持ちません。

このワークフローでは、すべての開発者がそれぞれ独自のSitecore開発インスタンスを必要とし、JSSアプリはコンテンツやレイアウトデータを取得するために接続します。

以下の場合、まずSitecoreを優先するワークフローを選ぶことをお勧めします:

-   このプロジェクトは、Sitecoreで働くことを好む経験豊富なSitecore開発者によって主導されています。
-   プロジェクトは複雑なコンテンツやバックエンドのアーキテクチャ要件を抱えています。
-   Sitecoreの開発者はJavaScriptアプリケーションも実装しています。
-   JSSアプリは同じデプロイプロセスでデプロイおよびバージョン設定を行います。

JSSアプリでSitecoreを優先して使うのは、通常のSitecoreサイトを作るのとほぼ同じですが、いくつかの違いがあります。

## レンダリングの作成

レンダリング項目を作成する際は、View renderingsやXSLTなどの代わりに、この*Json Rendering*テンプレートを使用してください。このレンダリングテンプレートは [、レイアウトサービス](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/layout-service.html "Layout Service")から発行されると自動的に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](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/sitecore-javascript-rendering-sdk-cli-tools-api-reference.html#UUID-ba8bae12-5938-63d2-1ae1-451aec88abe5_UUID-55a165b5-479e-e61a-95ca-27b8a3c26690 "jss deploy component")新しいコンポーネントをデプロイします。これはコードファースト開発で使われる関数manifest.addComponent()似ていますが、新しいコンポーネントを直接Sitecoreデータベースにデプロイします。
-   [jss deploy template](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/sitecore-javascript-rendering-sdk-cli-tools-api-reference.html#UUID-ba8bae12-5938-63d2-1ae1-451aec88abe5_UUID-c8f56651-aaff-715a-f4ce-7dcd065168e6 "jss deploy template")コンテンツテンプレートや設定項目などとして新しいSitecoreテンプレートをデプロイします。

## インクリメンタル展開

Sitecore優先開発プロセスでは、新しいコードアーティファクトはJSS CLIコマンド[jss deploy files](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/sitecore-javascript-rendering-sdk-cli-tools-api-reference.html#UUID-ba8bae12-5938-63d2-1ae1-451aec88abe5_UUID-5ab8257d-9d44-bb0d-dc89-e9cb2df3f74c "jss deploy files")のみで展開されます。パッケージベースのデプロイメントは、jss deploy appを使った最初のデプロイメント後のコードファースト開発シナリオのみを意図しています。