開発モデル
概要
VS Code 向け Salesforce 拡張機能 は、組織開発モデルとパッケージ開発モデルをサポートしており、プロジェクト内で組織の認証、作成、切り替えを行うことができます。
- 組織開発モデル: Sandbox、Developer Edition (DE) 組織、Trailhead Playground、さらには本番組織など、ソース追跡されない組織での作業を可能にし、コードを直接取得してデプロイします。
- パッケージ開発モデル: 自己完結型のアプリケーションやライブラリを作成して、単一のパッケージとして組織にデプロイすることができます。これらのパッケージは通常、スクラッチ組織のようなソース追跡される組織で開発されます。この開発モデルでは、組織のソース追跡、ソース管理、および継続的インテグレーションや継続的デプロイメントを使用します。
VS Code 向け Salesforce 拡張機能 は、開発用にデフォルトの組織として設定した組織に対してコマンドを実行します。
組織開発モデル
組織開発モデルを使用して、Visual Studio Code で Sandbox、Developer Edition (DE)、または Trailhead Playground などのソース追跡されない組織で作業します。この開発モデルでは、変更を手動で追跡し、変更を Sandbox にデプロイしてから本番組織にデプロイする必要があります。Org Development Model の Trailhead モジュールを参照してください。
このモデルで開発を始めるには:
- プロジェクトを作成します。
- 組織ピッカーを使用して、開発したい組織を認証します。
- マニフェストまたは組織ブラウザを使用して、デフォルトの組織からソースを取得します。
- ソースをデフォルトの組織にデプロイします。
マニフェストを使用してプロジェクトを作成する
ソース追跡されない組織で開発を始めるには、以下の手順に従います。
- VS Code のエディタを開き、コマンドパレットから、SFDX: Create Project with Manifest (SFDX: マニフェストファイルを使用してプロジェクトを作成) を実行します。
- コードエディタのサイドバーで、組織ピッカーをクリックします。コマンドパレットが開き、組織を認証します。もしくは認証済みの組織の一覧から選択することもできます。
これが初めて VS Code でプロジェクトを作成する場合で、組織を認証していない場合は、組織ピッカーの表示テキストに [デフォルトの組織が未設定] と表示されます。
- SFDX: Authorize an Org (SFDX: 組織を認証) を実行し、ログイン URL、例えば Sandbox を選択します。
組織の別名を入力後、ブラウザのウィンドウが開きます。アクセスを許可し、組織にログインしてから、VS Code のウィンドウに戻ります。組織ピッカーには、入力した組織の別名が表示されます。
マニフェスト (package.xml
) ファイル
Sandbox、DE 組織、または Trailhead Playground に接続後、package.xml を使用して組織からメタデータを取得します。SFDX: Create Project with Manifest (SFDX: マニフェストファイルを使用してプロジェクトを作成) を実行すると、package.xml ファイルが作成されます。このファイルに、取得したい様々なメタデータ型を追加してください。package.xml
ファイルにおける様々なメタデータのサブセットを扱う方法を理解するには、メタデータ API 開発者ガイド の package.xml マニフェストファイルのサンプルを参照してください。
ソースの取得
組織開発モデルでは、組織での変更が自動的に追跡されません。そのため、取得した変更を自身で追跡するようにしてください。組織からソースを取得すると、ソースファイルのローカルバージョンが上書きされます。組織からソースを取得するときに、その組織とローカルのメタデータとの間の競合を検出できるようにすることができます。競合の検出を参照してください。
マニフェスト、ソースファイル、ディレクトリ、またはフォルダからソースを取得することができます。
- マニフェスト
- VS Code のエクスプローラまたはエディタで、マニフェストファイルを右クリックし、SFDX: Retrieve Source in Manifest from Org (SFDX: マニフェストファイルのソースを組織から取得) を選択します。
- エディタでマニフェストファイルを開いた状態で、コマンドパレットを開き、SFDX: Retrieve Source in Manifest from Org (SFDX: マニフェストファイルのソースを組織から取得) を実行します。
- ソースファイルまたはディレクトリ
- VS Code のエクスプローラで、ソースファイルまたはディレクトリを右クリックし、SFDX: Retrieve Source from Org (SFDX: 組織からソースを取得) を選択します。
- エディタでソースファイルを開いた状態で、編集中のペインを右クリックし、SFDX: Retrieve This Source from Org (SFDX: このソースを組織から取得) を選択します。
- エディタでソースファイルを開いた状態で、コマンドパレットを開き、SFDX: Retrieve This Source from Org (SFDX: このソースを組織から取得) を実行します。
ソースを取得する項目を選択すると、ディレクトリ構造内の既存のネストされた項目だけが取得されます。例えば、classes
フォルダを取得しようとすると、現在そのディレクトリに存在する Apex クラスだけが取得されます。コマンドは組織内のすべての Apex クラスを取得せず、フォルダ内の既存のクラスだけを更新します新しい Apex クラスを取得するには、そのクラス (またはすべての Apex クラス) を package.xml
に追加して、そのマニフェストファイルを使用してソースを取得します。ターミナルを使用して、sfdx force:source:retrieve --metadata ApexClass:YourApexClass
を実行することもできます。
ソース追跡されない組織に対しては、組織ブラウザを使用してソースを取得することもできます。
ソースを取得した後のプロジェクトの構成は次のようになります。
your-app
├── README.md
├── sfdx-project.json
├── .sfdx
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── force-app
| └── main
| └── default
| ├── aura
| ├── classes
| └── objects
└── manifest
└── package.xml
ソースのデプロイ
コードの変更をデプロイすると、ローカルバージョンのソースファイルが、組織のメタデータを上書きます。
マニフェストのソース、ソースファイル、ディレクトリ、またはフォルダをデプロイすることができます。
- マニフェスト
- VS Code のエクスプローラまたはエディタで、マニフェストファイルを右クリックし、SFDX: Deploy Source in Manifest to Org (SFDX: マニフェストファイルのソースを組織へデプロイ) を選択します。
- エディタでマニフェストファイルを開いた状態で、コマンドパレットを開き、SFDX: Deploy Source in Manifest to Org (SFDX: マニフェストファイルのソースを組織へデプロイ) を実行します。
- ソースファイルまたはディレクトリ
- VS Code のエクスプローラで、ソースファイルまたはディレクトリを右クリックし、SFDX: Deploy Source to Org (SFDX: 組織へソースをデプロイ) を選択します。
- エディタでソースファイルを開いた状態で、編集中のペインを右クリックし、SFDX: Deploy This Source to Org (SFDX: このソースを組織へデプロイ) を選択します。
- エディタでソースファイルを開いた状態で、コマンドパレットを開き、SFDX: Deploy This Source to Org (SFDX: このソースを組織へデプロイ) を実行します。
ソースの削除
ソース追跡されない組織とプロジェクトからソースを削除することができます。
- VS Code のエクスプローラで、マニフェスト, ソースファイルまたはディレクトリを右クリックして SFDX: Delete from Project and Org (SFDX: プロジェクトおよび組織から削除) を選択します。
- エディタでソースファイルを開き、ファイルを右クリックして SFDX: Delete This from Project and Org (SFDX: このソースをプロジェクトと組織から削除) を選択します。
- エディタでソースファイルを開き、コマンドパレットを開いて SFDX: Delete from Project and Org (SFDX: プロジェクトおよび組織から削除) を実行します。
プロジェクトの作成と組織ブラウザの使用
スクラッチ組織ではない組織で開発し、組織ブラウザを使用してソースを取得するには、以下の手順に従います。
- VS Code のエディタを開き、コマンドパレットから、SFDX: Create Project (SFDX: プロジェクトを作成) を実行します。
- コードエディタのサイドバーで、組織ピッカーをクリックします。コマンドパレットが開き、組織か Dev Hub を認証するか、スクラッチ組織を作成するかを選択します。もしくは認証済みの組織の一覧から選択することもできます。
- SFDX: Authorize an Org (SFDX: 組織を認証) を実行し、ログイン URL、例えば Sandbox を選択します。ブラウザのウィンドウで組織にログインしてから、VS Code のウィンドウに戻ります。
組織ブラウザは、デフォルトの組織で利用可能なメタデータ型と対応するコンポーネントを表示します。これは、デフォルトの組織のメタデータを .sfdx ディレクトリの下のローカルプロジェクトに保存します。組織ブラウザを参照してください。
ソースの取得
コンポーネントまたは複数のコンポーネントを、デフォルトの組織からローカルのプロジェクトに取得することができます。そのためには、コンポーネントまたはメタデータ型の横にある取得ボタンをクリックします。
また、更新アイコンをクリックすることで、組織レベル、メタデータ型、メタデータ型内のフォルダ、およびフォルダ内のコンポーネント単位で、メタデータを更新することができます。メタデータを更新する前に、ローカルのプロジェクトと組織内のメタデータの違いを比較することができます。ソースの差分を参照してください。
ソースのデプロイ
コードの変更を行った後、ソースファイル、ディレクトリ、またはフォルダのソースをデプロイすることができます。
- VS Code のエクスプローラで、ソースファイルまたはディレクトリを右クリックし、SFDX: Deploy Source to Org (SFDX: 組織へソースをデプロイ) を選択します。
- ソースファイルをエディタで開いた状態で、編集中のペインを右クリックし、SFDX: Deploy This Source File to Org (SFDX: このソースを組織へデプロイ) を選択します。
- ソースファイルをエディタで開いた状態で、コマンドパレットを開き、SFDX: Deploy This Source File to Org (SFDX: このソースを組織へデプロイ) を実行します。
注意: ファイルを保存するときにいつでもファイルをデプロイするには、ワークスペースの設定で、Push-or-deploy-on-save: Enabled を選択します。保存時のデプロイを参照してください。
パッケージ開発モデル
スクラッチ組織のようなソース追跡機能を持つ組織に対して開発を行う場合には、パッケージ開発モデルを使用します。このモデルは、ローカルのワークステーションとデフォルトの開発組織での変更を追跡します。パッケージ化されたメタデータのセットを使用して、組織間で変更を移行します。Package Development Model の Trailhead モジュールを参照してください。
プロジェクトの作成
このモデルで開発を開始するには、以下の手順に従います。
- VS Code のエディタを開き、コマンドパレットから、SFDX: Create Project (SFDX: プロジェクトを作成) を実行します。
- 既存のプロジェクトで作業したい場合は、File (ファイル) > Open (開く) (macOS) / File (ファイル) > Open Folder (フォルダを開く) (Windows、Linux) を選択し、プロジェクトのディレクトリに移動します。VS Code で既存のプロジェクトを開く前に、プロジェクトに
sfdx-project.json
ファイルがあり、メタデータがソース形式であることを確認してください。 - プロジェクトの構造についての情報は、『Salesforce DX 開発者ガイド』 の「プロジェクトの設定」を参照してください。
- ソース追跡された組織で作業できるのは、メタデータがソース形式の場合のみです。ソース形式を参照してください。
- 既存のプロジェクトで作業したい場合は、File (ファイル) > Open (開く) (macOS) / File (ファイル) > Open Folder (フォルダを開く) (Windows、Linux) を選択し、プロジェクトのディレクトリに移動します。VS Code で既存のプロジェクトを開く前に、プロジェクトに
- コードエディターのサイドバーで、組織ピッカーをクリックすると、コマンドパレットが開きます。
- SFDX: Authorize an Org (組織を認証) を実行します。Dev Hub がない場合は、『Salesforce DX 開発者ガイド』 の「組織での Dev Hub の有効化」を参照してください。
- 組織ピッカーをクリックし、SFDX: Create a Default Scratch Org (SFDX: デフォルトのスクラッチ組織を作成) を実行し、開発用のデフォルトのスクラッチ組織を作成し設定します。
- スクラッチ組織のシェイプを選択し、別名を入力し、スクラッチ組織の期限が切れるまでの日数を入力します。組織ピッカーにはスクラッチ組織に対して入力した別名が表示されます。サイドバーのブラウザアイコン () をクリックすると、作業しているデフォルトの組織を開くことができます。 開発中のデフォルトの組織を変更するには、組織ピッカーをクリックして別の組織を選択してください。または、コマンドパレットを開いて、SFDX: Authorize an Org (SFDX: 組織を認証) または SFDX: Create a Default Scratch Org (SFDX: デフォルトのスクラッチ組織を作成) を実行してください。
ソースのプッシュとプル
パッケージ開発モデルを使用すると、ローカルのプロジェクトとデフォルトの開発組織を同期させるのが簡単になります。パッケージ化されたメタデータのセットを使用して他の組織に変更をデプロイするので、手動で変更を追跡する必要はありません。 VS Code は、スクラッチ組織で作業していることをコンテキストとして認識しており、ソースを取得してデプロイするためのコマンドではなく、プッシュとプルのコマンドのみを提供します。
ソースのプッシュ
ソースを新しいスクラッチ組織にプッシュしたり変更を加えたりするには、SFDX: Push Source to Default Scratch Org (SFDX: デフォルトのスクラッチ組織へソースをプッシュ) を実行します。
プロジェクトの変更をスクラッチ組織の変更に上書きする場合は、SFDX: Push Source to Default Scratch Org and Override Conflicts (SFDX: デフォルトのスクラッチ組織へソースをプッシュして競合を上書き) を実行します。
ソースのプル
ブラウザで変更を行った後、SFDX: Pull Source from Default Scratch Org (SFDX: デフォルトのスクラッチ組織からソースをプル) を実行してプロジェクトを更新します。
スクラッチ組織の変更をプロジェクトの変更に上書きする場合は、SFDX: Pull Source from Default Scratch Org and Override Conflicts (SFDX: デフォルトのスクラッチ組織からソースをプルして競合を上書き) を実行します。
変更の確認
ローカルの変更をスクラッチ組織にプッシュしたり、リモートの変更をローカルのプロジェクトにプルしたりする前に、出力パネルで変更内容を確認することができます。そのためには、コマンドパレットから SFDX: View Changes in Default Scratch Org を実行してください。