プラットフォーム設定ファイル
この記事では、Microsoft Dynamics 365 Commerce プラットフォーム設定ファイルで構成できるさまざまなプロパティについて説明します。
\src\settings\ ディレクトリの下の platform.settings.json ファイルには、コマースの e-commerce runtime によって使用されるさまざまなプラットフォーム プロパティ設定が格納されます。 このファイルは既定で存在しない場合があります。 存在しない場合は、\src\settings\ ディレクトリの下に追加できます。 次の platform.settings.json ファイルの例では、さまざまなサポートされるプロパティ設定がファイルに示されています。
{
"dataActionTimeoutInMs": 4000,
"minClientChunkSize": 30000,
"excludeModules": [ ],
"namespaceExtensions" : [ ],
"secretsManagerOUN" : 128
}
プロパティ
dataActionTimeoutInMs
dataActionTimeoutInMs プロパティは、データ アクションがタイムアウトするまで応答を待機する最大時間 (ミリ秒) を定義します。タイム アウトはページ応答の下限を表します。アクション フレームワークは、定義されているタイム アウトからタイム アウトしてページを返すまで待機します。 既定値は 4,000 ミリ秒 (4 秒) です。
minClientChunkSize
minClientClientNkSize プロパティは、ブラウザに送信する Webpack JavaScript の小さいサイズ (バイト単位) を定義します。 最小サイズよりも小さい JavaScript 2 つをグループ化して、最小サイズを超える新しい機能を形成します。 最小サイズを小さくすると、より多くのチャンクが生成されます。 この場合、更に多くのコード分解が発生し、未使用の JavaScript コードが含まれます。 ただし、より小さいサイズのチャンクをダウンロードする必要があります。 一方、最小サイズを大きくすると、全体的なチャンクを最小限に抑えます。 この場合、ダウンロードする JavaScript ファイルの数は少なく、使用されない一部の JavaScript コードが含まれている場合があります。 既定値は 30,000 バイト (30 キロバイト) です。
excludedModules
excludedModules プロパティは、Webpack JavaScript チャンクから除外する一連のモジュールを定義します。 Commerce モジュールは、JavaScript チャンクにバンドルされ、クライアント側のブラウザに送信されます。 ただし、モジュールがサイトで必要ない場合は、そのモジュールを除外して、JavaScript の領域を減らしてページ読み込み速度を速くすることができます。
namespaceExtensions
namespaceExtensions プロパティは、モジュールの登録に使用される、サポートされる名前空間を定義します。 既定では、サポートされている名前空間は @msdyn365-commerce-modules のみです。 この名前空間には、すべてのモジュール ライブラリ モジュールおよびモジュールのコア セットが含まれます。 モジュール パッケージ名は、次の形式で定義されます。<>名前空間<module_name>。 新しい名前空間を使用するモジュールが公開された場合は、この名前空間を設定に追加できます。
secretsManagerOUN
secretsManagerOUN プロパティは、そのシークレット マネージャー クラスを使用してファイル名のシークレット値を取得する際に使用する作業単位番号を指定します。 この作業単位番号は、Retail Server の主要な金庫保管場所のパラメーターを構成するために Commerce Headquarters で使用された店舗の番号と一致している必要があります。 詳細については、キーをセキュアに管理するための Azure Key Vault の設定を参照してください。
JavaScript バンドル オプション
Dynamics 365 Commerce フレームワークでは、Webpack に最適化されたコンフィギュレーションを使用して JavaScript バンドルを生成します。 既定のコンフィギュレーションでは、「ツリーの揺れ」 (使用されていないコードや不使用のコードを削除する) および JavaScript の変更に役立ちますが、生成ロジックはバンドルの生成を改善するために、さらに微調整される可能性があります。 JavaScript バンドルを詳細に制御するには、フレームワークに次のオプションが用意されています。
enableModuleEntryPoints
Commerce フレームワークでは、モジュールごとに JavaScript バンドルを生成し、ページで必要なバンドルの読み込みがサポートされます。 enableModuleEntryPoints プラットフォーム設定により、モジュールごとに JavaScript バンドルを生成できます。
JavaScript が小さい場合は、ページ パフォーマンスが向上し、サイト ページで使用されない JavaScript が少なくなります。 ただし、このバンドルは、ページで使用されるモジュールの数に応じて、JavaScript 要求の数が増加する可能性があります。 そのため、このプラットフォームの設定を運用環境で有効にする前に、環境に関する結果を入念に分析することをお勧めします。
モジュールごとに JavaScript バンドルを生成するには platform.settings.Juon ファイルに次のプラットフォーム設定を追加します。
"enableModuleEntryPoints": true
build
モジュールが多く、カスタマイズも多い複雑なアプリケーションでは構築プラットフォームの設定により、Webpack により多くのメモリが使用される場合があります。 この場合、既定のノードのヒープ メモリ サイズは不十分であり、「メモリ不足」 エラーが発生する可能性があります。 次の例に示すように、ヒープ メモリを増やすには、NODE_OPTIONS を設定して package.json ファイルでビルド ターゲットを更新して、ヒープ メモリの上限を増やします。
"build": "SET NODE_OPTIONS=--max_old_space_size=4096 && ..."
maxClientChunkSize
より小さい JavaScript バンドルは、ブラウザがスクリプトをより速く処理し実行することで、メイン スレッドへの負担を軽減します。 したがって、バンドルのサイズと合計ブロック時間のパフォーマンスとの間には直接相関関係があります。 maxClientClientNkSize プラットフォーム設定は、次の例に示すように、大きな JavaScript バンドルを複数の部分に分割することで、バンドル サイズを制御するのに役立ちます。
"maxClientChunkSize": 500000 // 500KB unzipped size