前回は Types という全部の項目を利用するコンポーネントを作成しました。今回はこのコンポーネントを利用して、CLI を利用して Staging のサーバーに追加していきます。
コンポーネントのシリアライズ
作成をしたコンポーネントをシリアライズして、リポジトリに反映させます。シリアライズの設定に関しては、手元の環境では src\SitecoreDemo.module.json というファイルを用意して、内容は以下のように設定しています。
JSON
{
"namespace": "SitecoreDemo",
"references": ["InitItems"],
"items": {
"includes": [
{
"name": "placeholders",
"path": "/sitecore/layout/Placeholder Settings/Project/sitecoredemo-jp"
},
{
"name": "demo-renderings",
"path": "/sitecore/layout/Renderings/Feature/Demo"
},
{
"name": "demo-settings",
"path": "/sitecore/system/Settings/Feature/Demo"
},
{
"name": "demo-branches",
"path": "/sitecore/templates/Branches/Feature/Demo"
},
{
"name": "demo-template",
"path": "/sitecore/templates/Feature/Demo"
},
{
"name": "renderings",
"path": "/sitecore/layout/Renderings/Project/sitecoredemo-jp"
},
{
"name": "templates",
"path": "/sitecore/templates/Project/sitecoredemo-jp"
},
{
"name": "languages",
"path": "/sitecore/system/Languages"
}
]
}
}
上記にテンプレートやレンダリングなど、追加をした項目に関してはシリアライズをする形になっています。コンテンツに関しては別の Json ファイルにしているため、これに絞ればコンテンツツリー以外はすべてシリアライズが可能です。
Sitecore CLI を利用することで、関連するファイルをシリアライズすることができます。
PowerShell
dotnet sitecore ser pull -n default -i SitecoreDemo
実際にいくつかのデータがシリアライズされて、以下の画面のように追加、更新されています。
以下のコマンドで Staging に反映させます。
PowerShell
dotnet sitecore ser push -n staging -i SitecoreDemo
この状態では、まだサイトではコンポーネントを認識していません。/sitecore/content/sitecoredemo-jp/sitecoredemo-jp/Presentation/Available Renderings/Demo の利用できるコンポーネントに対して、Types を設定します。
これで準備ができたので Pages を開きます。コンポーネントが左側に追加されているのがわかります。
まとめ
ローカルで作成したコンポーネントを XM Cloud 側に反映させる手続きを今回は CLI を利用して実施しました。シリアライズをする仕組みをうまく活用することで、コンポーネントを開発、関連するデータとともにクラウドに反映させることができます。