$commonSettings 一般設定
特定の課題と関連していないか、複数の課題と関連している設定は $projectBuilding.$commonSettingsに定義出来る。
$projectBuilding:
$commonSettings:
# 本ガイドに従って此処に一般設定を定義
$selectiveExecutions選択的実行$publicDirectoriesRelativePaths構成モード毎パブリックディジタルの早退パス$filesWatchingファイル監視
$selectiveExecutions 選択的実行
選択的実行定義 のに使われる連想配列系のオブジェクト。
キーに依り選択的実行の識別子を指定する事。
$projectBuilding:
$commonSettings:
$selectiveExecutions:
StaticPreview:
# 選択的実行「StaticPreview」の設定(詳細は後述)
Application:
# 選択的実行「Application」の設定(詳細は後述)
設定定義の規約に従い、キーの前に$記号が無い事は、其の名前が利用者に依り意識的に 選ばれ指定され、APIの予約済みキーではない事を意味する。
選択的実行の妥当な設定を定義した後は、 CLIユーティリティydaを呼び出す際、 オプション--selectiveExecutionで 設定ファイルに定義された中の何れかの選択的実行の識別子を指定出来る、例えば
yda build --selectiveExecution Application --mode LOCAL_DEVELOPMENT
$selectiveExecutions連想配列の値は オブジェクトであり、以下の規則に従って指定する必要が有る。
選択的実行毎設定
- $tasksAndSourceFilesSelection
- 日本語名
- 課題・ソースファイルの標本
- 型
- 連想配列型のオブジェクト
- undefinedは不可か
- はい
- nullは不可か
- はい
- undefinedバリューが不可か
- はい
- nullバリューが不可か
- はい
- 可能なキー
- $markupProcessing
- $stylesProcessing
- $ECMA_ScriptLogicProcessing
- $imagesProcessing
- $fontsProcessing
- $audiosProcessing
- $videosProcessing
- $plainCopying
- $browserLiveReloading
- 連想配列の値
- 型
- 指数配列
- 最少要素数
- 1
- undefined要素可否
- はい
- null要素可否
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
- $browserLiveReloadingSetupID
- 日本語名
- ブラウザー自動リロードのプリセットID
- 型
- string
- undefinedは不可か
- いいえ
- nullは不可か
- はい
- 最小文字数
- 1
- $dockerSetupID
- 日本語名
- Dockerプリセットid
- 型
- string
- undefinedは不可か
- いいえ
- nullは不可か
- はい
- 最小文字数
- 1
- $distributablePackageJSON_Generating
- 日本語名
- 構成専用「package.json」の生成
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
- $processingOnDemand
- 日本語名
- 要求に応じた処理
- 型
- 固定スキーマのオブジェクト
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- スキーマ
- {
- $enable
- 日本語名
- 有効か
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
- $fullInitialBuilding
- 日本語名
- 完全な初期構成が必要か
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
$tasksAndSourceFilesSelection 課題・ソースファイルの選択
- 日本語名
- 課題・ソースファイルの標本
- 型
- 連想配列型のオブジェクト
- undefinedは不可か
- はい
- nullは不可か
- はい
- undefinedバリューが不可か
- はい
- nullバリューが不可か
- はい
- 可能なキー
- $markupProcessing
- $stylesProcessing
- $ECMA_ScriptLogicProcessing
- $imagesProcessing
- $fontsProcessing
- $audiosProcessing
- $videosProcessing
- $plainCopying
- $browserLiveReloading
- 連想配列の値
- 型
- 指数配列
- 最少要素数
- 1
- undefined要素可否
- はい
- null要素可否
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
連想配列系のオブジェクトであり、其のキーは 課題 の名称、但し全課題ではなく、上記の概要に出たもののみ) で、値は 初期位置 群(ソースコードを処理する課題の場合)か、 アセット 群( アセット処理課題の場合又は 単純コピー の課題の場合)。 尚、選択的実行に言及された課題と群(初期位置 又はアセット)は、皆同じ設定ファイル内で 宣言されている必要が有る。
$projectBuilding:
$commonSettings:
$selectiveExecutions:
StaticPreview:
$tasksAndSourceFilesSelection:
$markupProcessing: [ StaticPreviewAnywherePage, Pages ]
$stylesProcessing: [ Shared, Layouts, Pages ]
Application:
$tasksAndSourceFilesSelection:
$markupProcessing: [ Pages, MVC_Fragments ]
$stylesProcessing: [ Shared, Layouts, Pages ] $ECMA_ScriptLogicProcessing: [ Pages, FrontServerEntryPoint, TypeORM_Configuration ] $markupProcessing: # マークアップ処理の設定方法は該当ドキュメントを参照
$entryPointsGroups:
StaticPreviewAnywherePage: # ...
Pages: # ...
MVC_Fragments: # ...
$stylesProcessing: # スタイル処理の設定方法は該当ドキュメントを参照
$entryPointsGroups:
Shared: # ...
$browserLiveReloadingSetupID ブラウザータブ自動リロード設定ID
- 日本語名
- ブラウザー自動リロードのプリセットID
- 型
- string
- undefinedは不可か
- いいえ
- nullは不可か
- はい
- 最小文字数
- 1
ブラウザーの自動リロード機能の関連している。此の機能のAPI では複数のプリセットを定義出来、それぞれに識別子が必要。 特定の選択的実行でブラウザー自動リロード機能が必要な場合、プロパティ $browserLiveReloadingSetupIDで望ましいプリセットの識別子を指定する事。
$projectBuilding:
$commonSettings:
$selectiveExecutions:
StaticPreview:
$tasksAndSourceFilesSelection:
# 上記を参照
$browserLiveReloadingSetupID: StaticPreview
Application:
$tasksAndSourceFilesSelection:
# 上記を参照
$browserLiveReloadingSetupID: Application
$browserLiveReloading:
$setups:
StaticPreview:
# ブラウザー自動リロードの設定方法は該当ドキュメントを参照
Application:
# ブラウザー自動リロードの設定方法は該当ドキュメントを参照
$dockerSetupID Docker設定のID
- 日本語名
- Dockerプリセットid
- 型
- string
- undefinedは不可か
- いいえ
- nullは不可か
- はい
- 最小文字数
- 1
Dockerとの連携機能と関連している。此の機能のAPI では複数のプリセットを定義出来、それぞれに識別子が必要。 特定の選択的実行でDockerの機能が必要な場合、プロパティ $dockerSetupIDで望ましいプリセットの識別子を指定する事。
$projectBuilding:
$commonSettings:
$selectiveExecutions:
SelectiveExecution1:
$tasksAndSourceFilesSelection:
# 上記を参照
$dockerSetupID: DockerSetup1
SelectiveExecution2:
$tasksAndSourceFilesSelection:
# 上記を参照
$dockerSetupID: DockerSetup2
$dockerLaunching:
DockerSetup1:
$composingOptions:
# Docker 起動の設定方法は該当ドキュメントを参照
DockerSetup2:
$composingOptions:
# Docker 起動の設定方法は該当ドキュメントを参照
$distributablePackageJSON_Generating 成果物専用「package.json」ファイルの生成
- 日本語名
- 構成専用「package.json」の生成
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
成果物専用「package.json」ファイルの生成機能と関連している。 此の真偽フラグは当該選択的実行に対してpackage.jsonの生成が必要かどうか 指定。 不要な時、明示的にfalseを指定する他に、指定しなくても良い。 そしてtrueに設定する場合は、同名グループを $distributablePackageJSON_Generatingの設定に定義する事が必要。
$projectBuilding:
$commonSettings:
$selectiveExecutions:
Application:
$distributablePackageJSON_Generating: true
$distributablePackageJSON_Generating:
# 出力されるpackage.jsonの設定方法は該当ドキュメントを参照
$processingOnDemand 需要に応じて処理
- 日本語名
- 要求に応じた処理
- 型
- 固定スキーマのオブジェクト
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- スキーマ
- {
- $enable
- 日本語名
- 有効か
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
- $fullInitialBuilding
- 日本語名
- 完全な初期構成が必要か
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
構造設計記法(マークアップ)のオンデマンド処理及び ブラウザタブの自動更新という最適化系の機能に関連しているので、此の設定グループは増分プロジェクトビルドモードのみ対象となっている。
規定ではYDAは変更されたソース マークアップファイルを保存する際、それらのファイルとPugディレクティブinclude 及びextendsで関連付けられているエントリポイントのみを処理する。 然し、多くの場合、此の最適化対策だけでは、1~2個のPugファイルを編集した後に数十個のエントリポイントが再ビルドされる のを防ぐには不十分な対策があり、効率的な開発の妨げになる可能性が高い。 其の場合、ブラウザで開いているページに該当しているエントリポイントのみを処理する最適化モードを有効に出来る。
$processingOnDemand を一時的に無効にするか、$fullInitialBuildingオプション にtrueを指定しにないと、一部のHTMLファイルが古くなっている可能性が有る。此の節では、特定の選択的実行に関連するオンデマンド処理の設定について 説明しているが、これらの設定はグローバル(選択的実行に関係なく)に定義する事も出来る。
enable 有効化するべきか
- 日本語名
- 有効か
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
trueで指定してある場合、オンデマンド処理モードが有効。 無効にしたい場合は、明示的にfalseを指定しても良いが、規定値なので、 明示的に指定する必要は無い。
fullInitialBuilding 完全な初期構成が必要か
- 日本語名
- 完全な初期構成が必要か
- 型
- boolean
- undefinedは不可か
- いいえ
- nullは不可か
- はい
値を true に指定すると、初期 プロジェクトビルド のプロセスで、現在の 選択的実行 に関連する すべて の エントリポイント が処理される。エントリポイント が数十個ある場合は、時間がかかる可能性がある。 デフォルト値 は false である。其の場合、特定の Pugファイル は、対応する HTMLファイル がブラウザで開かれたときに のみ 処理される。即座 ではないが、通常 2〜3秒 程度かかる。
$publicDirectoriesRelativePaths 構成モード毎パブリックディジタルの早退パス
- 型
- 連想配列型のオブジェクト
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- undefinedバリューが不可か
- はい
- nullバリューが不可か
- はい
- 可能なキー
- $localDevelopment
- $testing
- $staging
- $production
- 連想配列の値
- 型
- string
- 最小文字数
- 1
資源ポインタパス算出機能と関連している。短縮絶対パスを算出する為に、其の短縮絶対パスのルート何方のディレクトリに該当しているか、指定する 事が必要。 但し、静的プレビューモードの概念上、静的プレビューモードの場合絶対パスが算出 不可能。
上述のディレクトリの指定方法は、下記通りプロジェクトのルートに対して相対 パスを記載する事。
$projectBuilding:
$commonSettings:
$publicDirectoriesRelativePaths:
$localDevelopment: 03-LocalDevelopmentBuild/public
$staging: 04-StagingBuild/public
$production: 05-ProductionBuild/public
$filesWatching ファイル監視
- 型
- 固定スキーマのオブジェクト
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- スキーマ
- {
- $excludeFilesWithPathsRelativeToProjectRootDirectory
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているファイルを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
- $excludeDirectoriesWithPathsRelativeToProjectRootDirectory
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているディレクトリを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
- $buildingModeDependent
- 日本語名
- プロジェクト構成モードに応じて
- 型
- 連想配列型のオブジェクト
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- undefinedバリューが不可か
- はい
- nullバリューが不可か
- はい
- 可能なキー
- $staticPreview
- $localDevelopment
- 連想配列の値
- 型
- 固定スキーマのオブジェクト
- スキーマ
- {
- $excludeFilesWithPathsRelativeToProjectRootDirectory
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているファイルを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
- $excludeDirectoriesWithPathsRelativeToProjectRootDirectory
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているディレクトリを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
増分構成モードの場合プロジェクト再構成及びブラウザータブの自動更新の為に、ファイルとディレクトリの状態を 監視する事が必要。 規定では下記の項目を除いてYDA設定ファイルが配置されているディレクトリ配下の全ての ファイル及びディレクトリが監視される。
- ドットで始まる名前のファイル及びディレクトリ
- 以下のファイル
- package-lock.json
- yarn.lock
- 以下のディレクトリ
- bin
- node_modules
- obj
此れに加え、状態変化に対してYDAが反応するべきではない全てのファイル(又は少なくとも其の大部分)を除外する事が推奨。 此の場外は両方の増分構成モードに対しても、片方のモードに対しても設定可能である。 更に構成モードに応じて、他の構成モードに出力されあたファイルを監視から除外する事が合理的。
excludeFilesWithPathsRelativeToProjectRootDirectory 除外ファイルの相対パス
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているファイルを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
階層の深さや実行されている増分構成モードに関係無く監視から除外される ファイル名。
excludeDirectoriesWithPathsRelativeToProjectRootDirectory 除外ディレクトリの相対パス
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているディレクトリを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
階層の深さや実行されている増分構成モードに関係無く監視から除外される ディレクトリ名。 此処では通常、納品系プロジェクト構成用のディレクトリを除外するのが合理的。
buildingModeDependent 構成モード毎
excludeFilesWithPathsRelativeToProjectRootDirectory 除外ファイルの相対パス
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているファイルを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
階層の深さに関係無く、 指定された構成モードのみで 除外されるファイル名。
excludeDirectoriesWithPathsRelativeToProjectRootDirectory 除外ディレクトリの相対パス
- 日本語名
- プロジェクトのルート・ディレクトリに対して相対パスを持っているディレクトリを除外
- 型
- 指数配列
- undefinedは不可か
- いいえ
- nullはundefinedと同じ扱いされるか
- はい
- 配列の要素
- 型
- string
- 最小文字数
- 1
階層の深さに関係無く、 指定された構成モードのみで 除外されるディレクトリ名。
下記の例を考察。
$projectBuilding:
$commonSettings:
#...
$filesWatching:
$excludeFilesWithPathsRelativeToProjectRootDirectory:
- TestingBuild
- StagingBuild
- ProductionBuild
$buildingModeDependent:
$staticPreview:
$excludeFilesWithPathsRelativeToProjectRootDirectory:
- LocalDevelopmentBuild
$localDevelopment:
$excludeFilesWithPathsRelativeToProjectRootDirectory:
- StaticPreviewBuild
- ディレクトリTestingBuild、StagingBuild及びProductionBuild には、該当する納品系モード向けの成果物が出力される。 これらのディレクトリを監視する意味は通常無い為、完全に無視された。
- 静的プレビュー構成モードの場合、ローカル開発モードの成果物ディレクトリを監視する意味は常に無い為、 静的プレビュー構成モードの際ディレクトリLocalDevelopmentBuildは 無視された。 尚、此処でStaticPreviewBuildも無視すると、成果物ファイルの状態変更時が検知されなく成るので、ブラウザー・ページのの 自動リロードが発生しなく成る。
- 逆に、ローカル開発モードの場合、静的プレビューモードの成果物を監視する意味は無い為、 ディレクトリStaticPreviewBuildは無視された。