Yamato DaiwaAutomation

$commonSettings 一般設定

特定の課題と関連していないか、複数の課題と関連している設定は $projectBuilding.$commonSettingsに定義出来る。

$selectiveExecutions 選択的実行

選択的実行定義 のに使われる連想配列系のオブジェクト。

キーに依り選択的実行の識別子を指定する事。

設定定義の規約に従い、キーの前に$記号が無い事は、其の名前が利用者に依り意識的に 選ばれ指定され、APIの予約済みキーではない事を意味する。

選択的実行の妥当な設定を定義した後は、 CLIユーティリティydaを呼び出す際、 オプション--selectiveExecutionで 設定ファイルに定義された中の何れかの選択的実行の識別子を指定出来る、例えば

$selectiveExecutions連想配列の値は オブジェクトであり、以下の規則に従って指定する必要が有る。

選択的実行毎設定

ProjectBuildingCommonSettings__FromFile__RawValid.SelectiveExecution
個々の選択的実行の設定
{
$tasksAndSourceFilesSelection
$browserLiveReloadingSetupID
$dockerSetupID
$distributablePackageJSON_Generating
$processingOnDemand
}

$tasksAndSourceFilesSelection 課題・ソースファイルの選択

連想配列系のオブジェクトであり、其のキーは 課題 の名称、但し全課題ではなく、上記の概要に出たもののみ) で、値は 初期位置 群(ソースコードを処理する課題の場合)か、 アセット 群( アセット処理課題の場合又は 単純コピー の課題の場合)。 尚、選択的実行に言及された課題と群(初期位置 又はアセット)は、皆同じ設定ファイル内で 宣言されている必要が有る。

$browserLiveReloadingSetupID ブラウザータブ自動リロード設定ID

ブラウザーの自動リロード機能の関連している。此の機能のAPI では複数のプリセットを定義出来、それぞれに識別子が必要。 特定の選択的実行でブラウザー自動リロード機能が必要な場合、プロパティ $browserLiveReloadingSetupIDで望ましいプリセットの識別子を指定する事。

$dockerSetupID Docker設定のID

Dockerとの連携機能と関連している。此の機能のAPI では複数のプリセットを定義出来、それぞれに識別子が必要。 特定の選択的実行でDockerの機能が必要な場合、プロパティ $dockerSetupIDで望ましいプリセットの識別子を指定する事。

$distributablePackageJSON_Generating 成果物専用「package.json」ファイルの生成

成果物専用「package.json」ファイルの生成機能と関連している。 此の真偽フラグは当該選択的実行に対してpackage.jsonの生成が必要かどうか 指定。 不要な時、明示的にfalseを指定する他に、指定しなくても良い。 そしてtrueに設定する場合は、同名グループを $distributablePackageJSON_Generatingの設定に定義する事が必要。

$processingOnDemand 需要に応じて処理

構造設計記法(マークアップ)のオンデマンド処理及び ブラウザタブの自動更新という最適化系の機能に関連しているので、此の設定グループは増分プロジェクトビルドモードのみ対象となっている。

規定ではYDAは変更されたソース マークアップファイルを保存する際、それらのファイルとPugディレクティブinclude 及びextendsで関連付けられているエントリポイントのみを処理する。 然し、多くの場合、此の最適化対策だけでは、1~2個のPugファイルを編集した後に数十個のエントリポイントが再ビルドされる のを防ぐには不十分な対策があり、効率的な開発の妨げになる可能性が高い。 其の場合、ブラウザで開いているページに該当しているエントリポイントのみを処理する最適化モードを有効に出来る。

此の節では、特定の選択的実行に関連するオンデマンド処理の設定について 説明しているが、これらの設定はグローバル(選択的実行に関係なく)に定義する事も出来る。

enable 有効化するべきか

trueで指定してある場合、オンデマンド処理モードが有効。 無効にしたい場合は、明示的にfalseを指定しても良いが、規定値なので、 明示的に指定する必要は無い。

fullInitialBuilding 完全な初期構成が必要か

値を true に指定すると、初期 プロジェクトビルド のプロセスで、現在の 選択的実行 に関連する すべて の エントリポイント が処理される。エントリポイント が数十個ある場合は、時間がかかる可能性がある。 デフォルト値 は false である。其の場合、特定の Pugファイル は、対応する HTMLファイル がブラウザで開かれたときに のみ 処理される。即座 ではないが、通常 2〜3秒 程度かかる。

$publicDirectoriesRelativePaths 構成モード毎パブリックディジタルの早退パス

資源ポインタパス算出機能と関連している。短縮絶対パスを算出する為に、其の短縮絶対パスのルート何方のディレクトリに該当しているか、指定する 事が必要。 但し、静的プレビューモードの概念上、静的プレビューモードの場合絶対パスが算出 不可能。

上述のディレクトリの指定方法は、下記通りプロジェクトのルートに対して相対 パスを記載する事。

$filesWatching ファイル監視

増分構成モードの場合プロジェクト再構成及びブラウザータブの自動更新の為に、ファイルとディレクトリの状態を 監視する事が必要。 規定では下記の項目を除いてYDA設定ファイルが配置されているディレクトリ配下の全ての ファイル及びディレクトリが監視される。

  • ドットで始まる名前のファイル及びディレクトリ
  • 以下のファイル
    • package-lock.json
    • yarn.lock
  • 以下のディレクトリ
    • bin
    • node_modules
    • obj

此れに加え、状態変化に対してYDAが反応するべきではない全てのファイル(又は少なくとも其の大部分)を除外する事が推奨。 此の場外は両方の増分構成モードに対しても、片方のモードに対しても設定可能である。 更に構成モードに応じて、他の構成モードに出力されあたファイルを監視から除外する事が合理的。

excludeFilesWithPathsRelativeToProjectRootDirectory 除外ファイルの相対パス

階層の深さや実行されている増分構成モードに関係無く監視から除外される ファイル名。

excludeDirectoriesWithPathsRelativeToProjectRootDirectory 除外ディレクトリの相対パス

階層の深さや実行されている増分構成モードに関係無く監視から除外される ディレクトリ名。 此処では通常、納品系プロジェクト構成用のディレクトリを除外するのが合理的。

buildingModeDependent 構成モード毎

excludeFilesWithPathsRelativeToProjectRootDirectory 除外ファイルの相対パス

階層の深さに関係無く、 指定された構成モードのみで 除外されるファイル名。

excludeDirectoriesWithPathsRelativeToProjectRootDirectory 除外ディレクトリの相対パス

階層の深さに関係無く、 指定された構成モードのみで 除外されるディレクトリ名。

下記の例を考察。

  • ディレクトリTestingBuild、StagingBuild及びProductionBuild には、該当する納品系モード向けの成果物が出力される。 これらのディレクトリを監視する意味は通常無い為、完全に無視された。
  • 静的プレビュー構成モードの場合、ローカル開発モードの成果物ディレクトリを監視する意味は常に無い為、 静的プレビュー構成モードの際ディレクトリLocalDevelopmentBuildは 無視された。 尚、此処でStaticPreviewBuildも無視すると、成果物ファイルの状態変更時が検知されなく成るので、ブラウザー・ページのの 自動リロードが発生しなく成る。
  • 逆に、ローカル開発モードの場合、静的プレビューモードの成果物を監視する意味は無い為、 ディレクトリStaticPreviewBuildは無視された。