Salesforce DX プロジェクトの設定
サンプルリポジトリには、Salesforce CLI または VS コード向け Salesforce 拡張機能を使用してプロジェクトを作成するためのサンプルの sfdx-project.json ファイルが用意されています。
独自のソースを使用してこのファイルを確認することをお勧めします。
1{
2"packageDirectories" : [
3 { "path": "force-app", "default": true},
4 { "path" : "unpackaged" },
5 { "path" : "utils" }
6 ],
7"namespace": "",
8"sfdcLoginUrl" : "https://login.salesforce.com",
9"sourceApiVersion": "58.0"
10}次のパラメーターは手動で編集できます。
- name (Salesforce Functions で必要)
-
Salesforce DX または Salesforce Functions のプロジェクト名。
- namespace (省略可能)
-
パッケージで使用されるグローバル名前空間です。名前空間は、Dev Hub 組織に関連付けられている組織に登録されている必要があります。この名前空間は、org create scratch コマンドで作成されたスクラッチ組織に割り当てられています。ロック解除済みパッケージを作成する場合、名前空間なしでパッケージを作成するオプションがあります。
- oauthLocalPort (省略可能)
- デフォルトでは、OAuth ポートは 1717 です。1717 がすでに使用中の場合はこのポートを変更します。また JWT ベース認証をサポートするために Dev Hub 組織に接続アプリケーションを作成することを計画します。さらに、「組織の接続アプリケーションの作成」の手順に従って、コールバック URL を変更してください。
- packageAliases (省略可能)
-
わかりづらいことが多いパッケージ ID の別名。詳細は、「第二世代管理パッケージのプロジェクト設定ファイル」を参照してください。
- packageDirectories (必須)
-
パッケージディレクトリは、組織との間でソースを同期するときに対象となるディレクトリを示します。これらのディレクトリには、管理パッケージまたは未管理パッケージのソースファイルを保存できます。また、ツールや変更セットなどによって生成されたパッケージ化されていないソースファイルを保存することもできます。packageDirectories のすべてのオプションについては、「第二世代管理パッケージのプロジェクト設定ファイル」を参照してください。
パッケージディレクトリを使用する場合は、次の点に��意してください。
- パッケージディレクトリの場所は、プロジェクトからの相対パスです。絶対パスを指定しないでください。次の 2 つは同等です。
1"path": "helloWorld" 2"path" : "./helloWorld" - デフォルトパスは 1 つだけ指定できます (パッケージディレクトリ)。パスが 1 つしかない場合は、それがデフォルトであるとみなされるため、明示的に default パラメーターを設定する必要はありません。複数のパスがある場合は、どれがデフォルトであるかを指定する必要があります。
- Salesforce CLI は、組織の変更をローカルプロジェクトで取得するときに、対象ディレクトリとしてデフォルトのパッケージディレクトリを使用します。このデフォルトパスは、第二世代パッケージを作成するときにも使用されます。
- 出力ディレクトリを指定しない場合、デフォルトのパッケージディレクトリはソース変換中にファイルが保存される場所にもなります。ソース変換は、メタデータ形式からソース形式へとソース形式からメタデータ形式への両方があります。
- パッケージディレクトリの場所は、プロジェクトからの相対パスです。絶対パスを指定しないでください。次の 2 つは同等です。
- plugins (省略可能)
-
作成したカスタムプラグインを Salesforce DX プロジェクトで使用するには、sfdx-project.json ファイルに plugins セクションを追加します。このセクションで、プラグインの動作を変更するための設定値と設定を追加します。
1"plugins": { 2 "yourPluginName": { 3 "timeOutValue": "2" 4 }, 5 "yourOtherPluginName": { 6 "yourCustomProperty": true 7 } 8}プロジェクトのソース制御に含める値についてのみ、設定値を保存します。これらの設定値は、開発チーム全体に影響を与えます。
- pushPackageDirectoriesSequentially (省略可能) (廃止)
-
true に設定すると、force:source:push を使用したときに、複数のパッケージディレクトリが、packageDirectories にリストされている順にプッシュされます。ディレクトリは、個別のトランザクションでプッシュされます。このプロパティのデフォルト値は false です。これは、複数のパッケージディレクトリが、単一のトランザクションで順序を考慮せずにリリースされることを意味します。例:
1"packageDirectories": [ 2 { 3 "path": "es-base-custom", 4 "default": true 5 }, 6 { 7 "path": "es-base-ext" 8 } 9 ], 10 "pushPackageDirectoriesSequentially": true, - replacement (省略可能)
-
ファイルを組織にリリースする直前に、メタデータソースファイルの文字列を特定の値に自動的に置き換えます。
詳細は、「リリース前のコードの文字列の置換」を参照してください。
- sfdcLoginUrl (省略可能)
-
org login コマンドが使用するログイン URL です。指定しない場合、デフォルトは https://login.salesforce.com です。特定の Salesforce インスタンスに対してユーザーを認証したい場合は、デフォルト値に優先する値を指定してください。たとえば、Sandbox 組織に対して認証する場合は、このパラメーターを https://test.salesforce.com に設定してください。
ここでデフォルトのログイン URL を指定しない場合や、プロジェクトの外部で org login を実行する場合は、組織を認証するときに --instance-url フラグを使用してインスタンス URL を指定します。
- sourceApiVersion (省略可能)
-
ソースに互換性がある API のバージョンです。デフォルトは Salesforce CLI と同じバージョンです。
sourceApiVersion の値によって、project deploy、project retrieve、project convert の実行中に取得される各メタデータ型の項目が決定されます。最近のリリースで変更されたメタデータ型を使用している場合、この項目は重要です。(メタデータソースのバージョンを指定したい場合があるため)。たとえば、API バージョン 58.0 の CustomTab に新規の項目が追加されたとしましょう。バージョン 57.0 以前のコンポーネントを取得する場合、コンポーネントにその項目が含まれていないため、project コマンドを実行するとエラーが表示されます。
このプロジェクト設定パラメーターを同じような名前の org-api-version CLI 設定変数と混同しないようにしてください。詳細は、「Salesforce CLI の API バージョンとソース API バージョンのしくみ」を参照してください。