ローカル開発環境を設定
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 にプッシュし、ユニバーサルエディター で検証し(指定された分岐を使用)、実稼動環境へのデプロイメントの準備が整ったら メイン分岐 に結合します。
-
前提条件
開発を開始する前に、次をマシンにインストールします。
- Git
- Node.js と npm
- Microsoft Visual Studio Code(または同様のコードエディター)
GitHub リポジトリのクローンを作成
ローカル開発環境に AEM Edge Delivery Services のコードプロジェクトを含む、新しいコードプロジェクトの章で作成した 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
build:json
component-*.json
ファイルに追加します。build:json:models
/component-models.json
にコンパイルします。build:json:definitions
/component-definitions.json
にコンパイルします。build:json:filters
/component-filters.json
にコンパイルします。npm run build:json
を実行して、メイン JSON ファイルを再生成します。リンティング
リンティングにより、変更を main
分岐に結合する前に Edge Delivery Services プロジェクトに必要なコードの品質と一貫性が確保されます。
NPM スクリプトは、npm run
経由で実行できます。次に例を示します。
# ~/Code/aem-wknd-eds-ue
$ npm run lint
lint:js
lint:css
lint
リンティングの問題を自動的に修正
次の 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
scripts
配列に追加できます。
code language-json |
---|
|