ローカル開発環境を設定

Edge Delivery Services で配信される web サイトを迅速に開発するには、ローカル開発環境が不可欠です。この環境では、ローカルで開発されたコードを使用しながら、Edge Delivery Services からコンテンツを取得するので、開発者はコードの変更を即座に確認できます。このような設定により、高速で反復的な開発とテストがサポートされます。

Edge Delivery Services の web サイトプロジェクトの開発ツールとプロセスは、web 開発者にとって使いやすいように設計されており、高速で効率的な開発エクスペリエンスを実現します。

開発トポロジ

このビデオでは、ユニバーサルエディターで編集できる Edge Delivery Services の web サイトプロジェクトの開発トポロジの概要について説明します。

その他の開発トポロジの詳細を参照してください
  • GitHub リポジトリ

    • 目的:Web サイトのコード(CSS および JavaScript)をホストします。
    • 構造メイン分岐 ​には実稼動環境対応のコードが含まれ、他の分岐には作業用コードが保持されます。
    • 機能:任意の分岐のコードは、ライブ web サイトに影響を与えることなく、実稼動 ​環境または​ プレビュー ​環境に対して実行できます。
  • AEM オーサーサービス

    • 目的:Web サイトのコンテンツを編集および管理する正規のコンテンツリポジトリとして機能します。
    • 機能ユニバーサルエディター ​でコンテンツの読み取りと書き込みを行います。編集したコンテンツは、実稼動 ​環境または​ プレビュー ​環境で Edge Delivery Services に公開されます。
  • ユニバーサルエディター

    • 目的:Web サイトのコンテンツを編集する WYSIWYG インターフェイスを提供します。
    • 機能AEM オーサーサービス ​に対して読み取りと書き込みを行います。変更に対するテストおよび検証に、GitHub リポジトリ ​の任意の分岐のコードを使用するように設定できます。
  • Edge Delivery Services

    • 実稼動環境

      • 目的:ライブ web サイトのコンテンツとコードをエンドユーザーに配信します。
      • 機能GitHub リポジトリ ​の​ メイン分岐 ​のコードを使用して、AEM オーサーサービス ​から公開されたコンテンツを提供します。
    • プレビュー環境

      • 目的:デプロイメント前にコンテンツとコードをテストおよびプレビューするステージング環境を提供します。
      • 機能GitHub リポジトリ ​の任意の分岐のコードを使用して AEM オーサーサービス ​から公開されたコンテンツを提供し、ライブ web サイトに影響を与えることなく徹底的なテストを実現します。
  • ローカル開発環境

    • 目的:開発者がローカルでコード(CSS および JavaScript)を書き込みおよびテストできるようにします。

    • 構造

      • 分岐ベースの開発の GitHub リポジトリ ​のローカルクローン。
      • 開発サーバーとして機能する AEM CLI は、ホットリロードエクスペリエンスを実現できるように、ローカルコードの変更を​ プレビュー環境 ​に適用します。
    • ワークフロー:開発者はローカルでコードを書き込み、作業用分岐に変更をコミットし、その分岐を GitHub にプッシュし、ユニバーサルエディター ​で検証し(指定された分岐を使用)、実稼動環境へのデプロイメントの準備が整ったら​ メイン分岐 ​に結合します。

前提条件

開発を開始する前に、次をマシンにインストールします。

  1. Git
  2. Node.js と npm
  3. Microsoft Visual Studio Code(または同様のコードエディター)

GitHub リポジトリのクローンを作成

ローカル開発環境に AEM Edge Delivery Services のコードプロジェクトを含む、新しいコードプロジェクトの章で作成した GitHub リポジトリのクローンを作成します。

GitHub リポジトリのクローン

$ cd ~/Code
$ git clone git@github.com:<YOUR_ORG>/aem-wknd-eds-ue.git

プロジェクトのルートとして機能する Code ディレクトリに新しい aem-wknd-eds-ue フォルダーが作成されます。マシン上の任意の場所にプロジェクトのクローンを作成できますが、このチュートリアルではルートディレクトリとして ~/Code を使用します。

プロジェクトの依存関係のインストール

プロジェクトフォルダーに移動し、npm install を使用して必要な依存関係をインストールします。Edge Delivery Services プロジェクトでは、Webpack や Vite などの従来の Node.js ビルドシステムは使用されませんが、ローカル開発には引き続きいくつかの依存関係が必要です。

# ~/Code/aem-wknd-eds-ue

$ npm install

AEM CLI をインストールします。

AEM CLI は、Edge Delivery Services ベースの AEM web サイトの開発を効率化するように設計された Node.js コマンドラインツールであり、web サイトの迅速な開発とテストのローカル開発サーバーを提供します。

AEM CLI をインストールするには、次を実行します。

# ~/Code/aem-wknd-eds-ue

$ npm install @adobe/aem-cli

AEM CLI は、npm install --global @adobe/aem-cli を使用してグローバルにインストールすることもできます。

ローカル AEM 開発サーバーの起動

aem up コマンドを実行すると、ローカル開発サーバーが起動し、サーバーの URL へのブラウザーウィンドウが自動的に開きます。このサーバーは、Edge Delivery Services 環境へのリバースプロキシとして機能し、開発にローカルコードベースを使用しながら、そこからコンテンツを提供します。

$ cd ~/Code/aem-wknd-eds-ue
$ aem up

    ___    ________  ___                          __      __
   /   |  / ____/  |/  /  _____(_)___ ___  __  __/ /___ _/ /_____  _____
  / /| | / __/ / /|_/ /  / ___/ / __ `__ \/ / / / / __ `/ __/ __ \/ ___/
 / ___ |/ /___/ /  / /  (__  ) / / / / / / /_/ / / /_/ / /_/ /_/ / /
/_/  |_/_____/_/  /_/  /____/_/_/ /_/ /_/\__,_/_/\__,_/\__/\____/_/

info: Starting AEM dev server version x.x.x
info: Local AEM dev server up and running: http://localhost:3000/
info: Enabled reverse proxy to https://main--aem-wknd-eds-ue--<YOUR_ORG>.aem.page

AEM CLI により、ブラウザーで web サイト http://localhost:3000/ が開きます。プロジェクトの変更は web ブラウザーに自動的にホットリロードされますが、コンテンツの変更にはプレビュー環境に公開し、web ブラウザーを更新する必要があります。

Web サイトで 404 ページが表示される場合は、新しいコードプロジェクトで更新された fstab.yaml または paths.json が誤って設定されているか、変更が main 分岐にコミットされていない可能性があります。

JSON フラグメントの作成

AEM ボイラープレート XWalk テンプレートを使用して作成された Edge Delivery Services プロジェクトは、ユニバーサルエディターでのブロックオーサリングを有効にする JSON 設定に依存します。

  • JSON フラグメント:関連するブロックと共に保存され、ブロックモデル、定義およびフィルターを定義します。

    • モデルフラグメント/blocks/example/_example.json に保存されます。
    • 定義フラグメント/blocks/example/_example.json に保存されます。
    • フィルターフラグメント/blocks/example/_example.json に保存されます。

AEM ボイラープレート XWalk プロジェクトテンプレートには、JSON フラグメントへの変更を検出し、git commit 時に適切な component-*.json ファイルにコンパイルする Husky の pre-commit フックが含まれます。

次の NPM スクリプトは、npm run 経由で手動で実行して JSON ファイルを作成できますが、husky の pre-commit フックによって自動的に処理されるので、通常は必要ありません。

# ~/Code/aem-wknd-eds-ue

npm run build:json
NPM スクリプト
説明
build:json
フラグメントからすべての JSON ファイルを作成し、適切な component-*.json ファイルに追加します。
build:json:models
ブロック JSON フラグメントを作成し、/component-models.json にコンパイルします。
build:json:definitions
ページ JSON フラグメントを作成し、/component-definitions.json にコンパイルします。
build:json:filters
ページ JSON フラグメントを作成し、/component-filters.json にコンパイルします。
TIP
フラグメントファイルに変更を行った後は、npm run build:json を実行して、メイン JSON ファイルを再生成します。

リンティング

リンティングにより、変更を main 分岐に結合する前に Edge Delivery Services プロジェクトに必要なコードの品質と一貫性が確保されます。

NPM スクリプトは、npm run 経由で実行できます。次に例を示します。

# ~/Code/aem-wknd-eds-ue

$ npm run lint
NPM スクリプト
説明
lint:js
JavaScript リンティングチェックを実行します。
lint:css
CSS リンティングチェックを実行します。
lint
JavaScript と CSS の両方のリンティングチェックを実行します。

リンティングの問題を自動的に修正

次の scripts をプロジェクトの package.json に追加し、npm run 経由で実行して、リンティングの問題を自動的に解決できます。

# ~/Code/aem-wknd-eds-ue

$ npm run lint:fix

これらのスクリプトは、AEM ボイラープレート XWalk テンプレートに事前設定されていませんが、package.json ファイルに追加できます。

追加スクリプト
table 0-row-3 1-row-3 2-row-3 3-row-3
NPM スクリプト コマンド 説明
lint:js:fix npm run lint:js -- --fix JavaScript リンティングの問題を自動的に修正します。
lint:css:fix stylelint blocks/**/*.css styles/*.css -- --fix CSS リンティングの問題を自動的に修正します。
lint:fix npm run lint:js:fix && npm run lint:css:fix 迅速なクリーンアップに、JS と CSS の両方の修正スクリプトを実行します。
package.json の例

次のスクリプトエントリを package.json scripts 配列に追加できます。

code language-json
{
  ...
  "scripts": [
    ...,
    "lint:js:fix": "npm run lint:js -- --fix",
    "lint:css:fix": "npm run lint:css -- --fix",
    "lint:fix": "npm run lint:js:fix && npm run lint:css:fix",
    ...
  ]
  ...
}
recommendation-more-help
bb44cebf-d964-4e3c-b64e-ce882243fe4d