同期または変換時のソースの除外方法
任意のテキストエディタを使用して .forceignore ファイルを作成し、除外するファイルまたはディレクトリを指定します。
すべての force:source:* コマンド (force:source:push、force:source:pull、force:source:deploy、force:source:retrieve など) が実行されるとき、.forceignore ファイルによってファイルが除外されます。
source コマンドで無視されるその他のファイル
- 「ドット」で開始するソースファイルまたはディレクトリ (.DS_Store や .sfdx など)
- .dup で終了するファイル
- package2-descriptor.json
- package2-manifest.json
ローカルソースとまだ同期されていないリモートの変更の除外
スクラッチ組織で直接変更し、その変更をローカルの DX プロジェクトに取得したくない場合があります。リモートのメタデータ変更を除外するには、.forceignore で形式 <api name>.<metadata type> を使用します。
「dreamhouse」という名前の権限セットがある場合、dreamhouse.permissionset を .forceignore に追加します。
ソース追跡コマンドでの同じメタデータの除外
- force-app/main/default/profiles/Marketing Profile.profile-meta.xml (force:source:push、force:source:deploy、force:source:status の実行時に無視)
- Marketing Profile.profile (force:source:pull、force:source:retrieve、force:source:status の実行時に無視)
特殊文字を含むメタデータ
メタデータ名に特殊文字 (スラッシュ、バックスラッシュ、引用符など) が含まれる場合、すべてのオペレーティングシステムでローカルファイルシステム上のファイル名がエンコードされます。たとえば、Custom: Marketing Profile というカスタムプロファイルを取得する場合、生成されるファイル名のコロンはエンコードされます。
Custom%3A Marketing Profile.profile-meta.xml
.forceignore で特殊文字を含むファイル名を参照する場合は、エンコードされたファイル名を使用します。
.forceignore を配置する場所
.forceignore に指定するパスは、必ず .forceignore ファイルが含まれるディレクトリに対する相対パスにします。.forceignore ファイルが機能するためには、実行するコマンドに応じて適切な場所に配置する必要があります。
- force:source:* 追跡コマンドの場合、.forceignore ファイルをプロジェクトのルートに追加します。
- force:mdapi:convert の場合、ファイルをメタデータ retrieve ディレクトリ (package.xml を含む) に追加します。
サンプル構文
.forceignore ファイルには .gitignore と似た機能があります。次は除外するソースを示すオプションです。次の例では、すべてのパスはプロジェクトルートディレクトリに対する相対パスです。
1# Specify a relative path to a directory from the project root
2helloWorld/main/default/classes
3
4# Specify a wildcard directory - any directory named “classes” is excluded
5**classes
6
7# Specify file extensions
8**.cls
9**.pdf
10
11# Specify a specific file
12helloWorld/main/default/HelloWorld.cls現在無視されているファイルやディレクトリのリスト
force:source:ignored コマンドを使用して、プロジェクトのファイルやディレクトリのうち、現在 force:source:* コマンドで無視されているものをリストします。force:source:ignored コマンドは .forceignore ファイルを参照して、無視されているファイルをリストアップします。
パラメータを指定せずにこのコマンドを実行すると、無視されているすべてのパッケージディレクトリにあるすべてのファイルがリストされます。--sourcepath パラメータを使用した場合は、特定のファイルまたはディレクトリのみがチェックされます。ディレクトリを指定すると、コマンドがすべてのサブディレクトリを再帰的にチェックします。
次の例では、特定のファイルが無視されているかどうかがチェックされます。
1sfdx force:source:ignored:list --sourcepath=package.xmlこの例では、特定のディレクトリ内の無視されているすべてのファイルのリストを取得します。
1sfdx force:source:ignored:list --sourcepath=force-app/main/default無視されているファイルが見つかった場合の出力例:
1Found the following ignored files:
2force-app/main/default/aura/.eslintrc.json
3force-app/main/default/lwc/.eslintrc.json
4force-app/main/default/lwc/jsconfig.json指定したファイルが見つからなかった場合の出力例:
1ERROR running force:source:ignored:list: ENOENT: no such file or directory, stat 'package.xml'ファイルが無視されていない場合の出力例:
1No ignored files found in paths:
2README.md