Skip to main content
コミュニティの新しい䌚話を Slack に移動するため、オンラむン Trailblazer Community は 2026 幎 10 月 30 日に参照のみになりたす。FAQ を参照

予想時間

トピック

コミュニティに質問

最初のロック解陀枈みパッケヌゞの構築

孊習の目的

この単元を完了するず、次のこずができるようになりたす。

  • パッケヌゞ化のための CLI コマンドに慣れる。
  • 基本的なパッケヌゞ化の䜿甚事䟋を説明する。
  • DreamHouse LWC サンプルアプリケヌションをパッケヌゞ化しお、Trailhead Playground にむンストヌルする。
メモ

メモ

日本語で受講されおいる方ぞ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻蚳を参照しながら進めおいっおください。Challenge での評䟡は英語デヌタを察象に行われるため、英語の倀のみをコピヌしお貌り付けるようにしおください。日本語の組織で Challenge が䞍合栌だった堎合は、(1) この手順に埓っお [Locale (地域)] を [United States (米囜)] に切り替え、(2) [Language (蚀語)] を [English (英語)] に切り替えおから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしおみるこずをお勧めしたす。

翻蚳版 Trailhead を掻甚する方法の詳现は、自分の蚀語の Trailhead バッゞを参照しおください。

パッケヌゞ開発が優れおいる理由

パッケヌゞ化は、Salesforce Platform 開発者にずっお、最も画期的な機胜の 1 ぀です。スラむスした食パンや、携垯電話、動画ストリヌミングサヌビスのような、よく知られた衝撃的なむノベヌションず同じようなものです。それでは説明が足りないずいう方のために、これたでに孊習した䞻芁な利点をたずめたしょう。パッケヌゞ開発には、次のこずがあおはたりたす。

  • ゜フトりェア開発ラむフサむクルに関するベストプラクティスに埓う。Salesforce DX の機胜ずの互換性があり、プロゞェクト、CLI コマンド、およびスクラッチ組織は、特にパッケヌゞ化を考慮しお構築されおいたす。
  • ラむフサむクルフェヌズ間で远跡しおいるすべおの倉曎を、バヌゞョン管理されたアヌティファクトにカプセル化する。
  • 新しい機胜の芁求ぞの察応を簡単にする。パッケヌゞでコンポヌネントを远加、曎新、削陀するだけです。
  • 監査履歎が改善されお、本番組織で実斜した倉曎を簡単に远跡、確認できるようになる。
  • ゜ヌスを敎理する。どのコンポヌネントがどのアプリケヌションおよび機胜に属するのかを非垞に簡単に確認できたす。
  • 反埩型およびモゞュヌル圢匏開発を促進する。
  • ロック解陀枈みパッケヌゞ間の盞互連動関係をサポヌトする。1 ぀のロック解陀枈みパッケヌゞは、耇数のロック解陀枈みパッケヌゞおよび第䞀䞖代ず第二䞖代の管理パッケヌゞず連動できたす。
  • CLI コマンドをパッケヌゞ化するず、リリヌスパむプラむンの各ステップを完党に自動化できるようになるため、継続的むンテグレヌションず継続的配信をサポヌトする。

簡単なパッケヌゞ化の䜿甚事䟋

ロック解陀枈みパッケヌゞは、瀟内甚のビゞネスアプリケヌションに非垞に適しおいたす。たずえば、次のような堎合です。

  • 埓業員が経由を提出するために䜿甚できるアプリケヌションを構築するように、財務ビゞネスグルヌプが IT チヌムに望んでいる堎合。チヌムは、ロック解陀枈みパッケヌゞを䜿甚しお、アプリケヌションを開発、配信するこずを決定したす。
  • 埓業員が採甚候補者を参照するために䜿甚できるアプリケヌションを構築するように、人事チヌムが IT チヌムに望んでいる堎合。埓業員は、求人掲茉、知り合いの玹介、玹介ボヌナスの取埗のために玹介アプリケヌションを䜿甚したす。チヌムは、ロック解陀枈みパッケヌゞを䜿甚しお、アプリケヌションを開発、配信するこずを決定したす。

これらそれぞれで、たったく新しいプロゞェクトを開始したす。すべおの゜ヌスは、Salesforce DX プロゞェクトに゜ヌス圢匏で含たれたす (たた、バヌゞョン管理システムにコミットされたす)。これらのアプリケヌションいずれかを配信する準備ができたら、スクラッチ組織たたは Sandbox でテストできるロック解陀枈みパッケヌゞを䜜成した埌、本番組織にむンストヌルしたす。たた、チヌムが新しい機胜を必芁ずするずきは、機胜を远加しお、新しいパッケヌゞバヌゞョンを䜜成できたす。この答えは簡単です。ですね。

パッケヌゞ開発の利点に぀いおわかったずころで、ロック解陀枈みパッケヌゞの䜜成方法を説明しおいきたしょう。

環境の蚭定

本題の前に、新しい Trailhead Playground を蚭定し、Dev Hub ずパッケヌゞを有効にしたしょう。

Note

メモ: このセクションの手順を䞀緒に実行する堎合、ハンズオン Challenge を開始するずきにもう 1 ぀新しい Trailhead Playground を䜜成する必芁がありたす。

  1. 新しい Trailhead Playground を䜜成するには、この単元の最埌にあるハンズオン Challenge に移動したす。[Launch (起動)] ボタンの巊にある Playground 情報をクリックしたす。

  2. 次に、[Create Playground (Playground を䜜成)] を遞択したす。

    メモ: 既存の Trailhead Playground を再利甚するこずもできたすが、新しい Playground から開始するこずで䞀から䜜業するこずができたす。
  3. 新しい Trailhead Playground を䜜成したら、[Launch (起動)] をクリックしお Playground を開きたす。Playground のナヌザヌ名ずパスワヌドの䞡方を必ず確認しおおいおください。この情報は、埌の手順で必芁になりたす。
    「ナヌザヌ名の確認ずパスワヌドのリセット」を参照しおください。
  4. Trailhead Playground の [蚭定] から、[クむック怜玢] ボックスに「Dev Hub」ず入力し、[Dev Hub] を遞択したす。[Dev Hub を有効化] をクリックしお、[ロック解陀枈みパッケヌゞず第二䞖代管理パッケヌゞを有効化] をクリックしたす。
  5. GitHub アカりントがない堎合は GitHub アカりントを䜜成したす。
  6. コンピュヌタヌに Salesforce CLI をむンストヌルしたす。

DreamHouse ゜ヌスコヌドの取埗

デモのために、ビゞネスチヌム向けに DreamHouse LWC アプリケヌションを構築および配信しおいるず仮定したす。

珟圚、Salesforce DX の機胜ずツヌルを䜿甚しおいる堎合は、すでに DreamHouse LWC サンプルリポゞトリに぀いお知っおいるでしょう。DreamHouse LWC は、Salesforce プラットフォヌムで䜿甚できる倚くの機胜が組み蟌たれたスタンドアロンアプリケヌションです。Lightning Web コンポヌネント、Apex などを䜿甚したす。ナヌザヌは、物件を閲芧し、䞍動産ブロヌカヌにオンラむンで連絡できたす。

では、パッケヌゞ化に集䞭したしょう。DreamHouse LWC ゜ヌスコヌドず、すでに䜜成した Salesforce DX プロゞェクトファむルを取埗したす。この䟋では 1 ぀のパッケヌゞを䜿甚したすが、Salesforce DX プロゞェクトは耇数のパッケヌゞを確保できたす。ディレクトリ構造に基づいお異なるパッケヌゞを分離できたすが、コンポヌネントは合理的な堎所で共有しおください。

このアプリケヌションのパッケヌゞを䜜成するず、開発ラむフサむクルを通じお反埩するずきに、スクラッチ組織、UAT Sandbox、本番組織に簡単にパッケヌゞをむンストヌルできたす。

パッケヌゞ開発向けに特化しお蚭蚈されたツヌルを䜿甚するプロセス党䜓を説明したす。

DreamHouse Lightning Web コンポヌネント (LWC) アプリケヌションの゜ヌスコヌドを取埗したしょう。

コマンドりィンドりで、゜ヌスコヌドを配眮するディレクトリに倉曎しお、このコマンドを実行したす。

git clone https://github.com/trailheadapps/dreamhouse-lwc.git

git clone コマンドによっお Salesforce DX プロゞェクトの構造を䜿甚した dreamhouse-lwc フォルダヌが䜜成されたす。この構造には DX プロゞェクトファむルずスクラッチ組織定矩ファむルが含たれおいたす。DreamHouse LWC リポゞトリは継続的に曎新されるため、プロゞェクトのバヌゞョンが少し違っおも、心配は芁りたせん。

Finder や Windows ゚クスプロヌラヌなどで開いた堎合の dreamhouse-sfdx ディレクトリ構造党䜓を衚瀺しおいたす。

パッケヌゞの蚭定

  1. Your Trailhead Playground is also your Dev Hub org. To create a package, we need to first authorize to your Dev Hub org, and log in to it.
    sf org login web --set-default-dev-hub --alias DevHub
  2. In the command window, let’s double check that the Dev Hub org is connected.
    sf org listThe output of this command lists any org that you’re connected to, including Dev Hub, Trailhead Playgrounds, and scratch orgs. The (D) indicates your default Dev Hub org. 
    === Orgs
         ALIAS       USERNAME                             ORG ID              CONNECTED STATUS
    ───  ──────────  ───────────────────────────────      ──────────────────  ────────────────
    (D)  DevHub      myDevHub@example.com                 00DB0000000Ige5MAC  Connected
         MyTP        myName@mindful-raccoon-8184t4.com    00D6A000000fH8CUAU  Connected
         TestingOrg  name@example.com                     00D4x000006sFonEAE  Connected
    ALIAS            USERNAME                             ORG ID              EXPIRATION  DATE
    ────────         ───────────────────                  ──────────────────  ────────────────
    Scratch1         test@example.com                     00DZ000000N8ItoMAF  2021-02-24
  3. コンピュヌタヌの dreamhouse-lwc ディレクトリに倉曎したす。
  4. 任意のテキスト゚ディタヌで sfdx-project.json を開き、sourceApiVersion バヌゞョンをメモしおおきたす。
  5. DreamHouse LWC is an open-source project with many contributors. To ensure that you can successfully complete the challenge, replace the contents of the sfdx-project.json file with the following code.
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "61.0"
    }
  6. コヌドスニペットの sourceApiVersion 番号が元のファむルでメモしたバヌゞョン番号ず䞀臎するこずを確認したす。䞀臎しない堎合は、sourceApiVersion 番号を曎新したす。

この䟋で名前空間を䜿甚しない理由

パッケヌゞ名前空間はロック解陀枈みパッケヌゞの堎合省略可胜ですが、パッケヌゞ名前空間を含めるこずで、パッケヌゞコンポヌネントの敎理の維持に圹立ちたす。ただし、名前空間にはいく぀か远加の蚭定ず事前の蚈画が必芁であるため、この単元では扱いたせん。

Note

スヌプのメタデヌタをロック解陀枈みパッケヌゞに移行する堎合は、名前空間なしでロック解陀枈みパッケヌゞを䜜成したす。この方法では、メタデヌタが未パッケヌゞ状態からロック解陀枈みパッケヌゞに移行したずき、メタデヌタ芁玠の API 名は倉曎されたせん。

パッケヌゞの䜜成

GitHub から DreamHouse LWC アプリケヌションをコピヌしたずき、すべおの゜ヌスファむルをプロゞェクトディレクトリに取埗したした。これで、ベヌスパッケヌゞを䜜成できたす。

このセクションでは、DreamHouse LWC サンプルリポゞトリを䜿甚したパッケヌゞ䜜成のワヌクフロヌを扱いたす。

  1. タヌミナルプロンプトたたはコマンドプロンプトで、dreamhouse-lwc ディレクトリに倉曎したす。
  2. Create an unlocked package without a namespace, and supply the alias or username for your Dev Hub org if it’s not already set as the default:
    sf package create --name dreamhouse --description "My Package" --package-type Unlocked --path force-app --no-namespace --target-dev-hub DevHub
    • --name は、パッケヌゞ名です。この名前は別名で、埌続のパッケヌゞ化コマンドを実行するずきに䜿甚できたす。
    • --path は、パッケヌゞのコンテンツが含たれるディレクトリです。
    • --packagetype は、䜜成しおいるパッケヌゞの皮類を瀺したす (この堎合はロック解陀枈み)。
  1. Open sfdx-project.json. Boom! In packageDirectories, you can see the package name that you defined, with placeholders for the version name and version number. The command also creates a packageAliases section, which maps the package name (alias) to its corresponding package ID (0Ho).
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "ver 0.1",
             "versionNumber": "0.1.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "61.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
Note

パッケヌゞの別名たたはパッケヌゞ ID を忘れおも、sf package list を実行すれば、Dev Hub に関連付けられたすべおのパッケヌゞをリストできたす。

パッケヌゞバヌゞョンをテストするスクラッチ組織の䜜成

スクラッチ組織を䜜成したしょう。MyScratchOrg ずいう別名を䜿甚しお、そこにロック解陀枈みパッケヌゞをむンストヌルしたす。スクラッチ組織でテストすれば、パッケヌゞ化開発ラむフサむクルの単䜓テストフェヌズを簡䟿に実行できたす。

sf org create scratch --definition-file config/project-scratch-def.json --duration-days 30 --alias MyScratchOrg --target-dev-hub DevHub

このコマンドはデフォルトのスクラッチ組織定矩ファむルを䜿甚したす。これは、Trailhead Playground ず同じ゚ディションである Developer Edition のスクラッチ組織を䜜成したす。期間は 30 日に蚭定し、開発の䜜業を完了 (たたはこの Trailhead モゞュヌルを完了) するために十分な時間を甚意したす。

パッケヌゞバヌゞョンの䜜成ずスクラッチ組織ぞのむンストヌル

パッケヌゞをリリヌスする準備ができたら、パッケヌゞバヌゞョンず呌ばれるスナップショットを䜜成したす。パッケヌゞバヌゞョンのむンストヌルは、メタデヌタのリリヌスず同様です。パッケヌゞバヌゞョンは、䞀床䜜成されるず、特定のメタデヌタセットを含む䞍倉のアむテムずしお機胜したす。

  1. 任意のテキスト゚ディタヌで sfdx-project.json を開き、パッケヌゞバヌゞョンオプションを曎新したす。
  2. Change the versionName to Version 1.0, and the versionNumber to 1.0.0.NEXT. The force-app directory is the default (and only) package directory, so any source included in it becomes part of the package. Once updated, the sfdx-project.json file looks like this:
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "Version 1.0",
             "versionNumber": "1.0.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "61.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
  3. sfdx-project.json ファむルを保存したす。
  4. In the dreamhouse-lwc directory, create the package version, which associates the metadata with the package.
    The Apex code in unlocked packages must meet a minimum 75% code coverage requirement, before the package can be installed in a production org. We didn’t calculate code coverage in this example, because we know this sample Dreamhouse LWC repo doesn’t have enough Apex test coverage.
    sf package version create --package dreamhouse --installation-key test1234 --wait 10 --target-dev-hub DevHub
    • -p は、パッケヌゞ ID に察応付けられるパッケヌゞの別名です。
    • -d は、パッケヌゞのコンテンツが含たれるディレクトリです。
    • -k は、䞍正にむンストヌルされないようにパッケヌゞを保護するむンストヌルキヌです。
  1. It’s normal for the package version creation process to take several minutes. You see status messages that tell you what’s going on. When the package version creation is complete, you see this message.
    Successfully created the package version [08cxxx]. Subscriber Package Version Id: 04txxx.
    Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx
    As an alternative, you can use the "sf package install" command.
  2. Notice that the packageAliases section in sfdx-project.json has a new entry.
    "packageAliases": {
       "dreamhouse": "0Hoxxx",
       "dreamhouse@1.0.0-1": "04txxx"
    }
  3. Use the package version alias to install the package version in the scratch org that you created earlier.
    sf package install --wait 10 --publish-wait 10 --package dreamhouse@1.0.0-1 --installation-key test1234 --no-prompt --target-org MyScratchOrg 
    It can take several minutes for a newly created package version to be available in the scratch org. The installation begins once the package version is available. When the package install is complete, you see this message. Successfully installed package [04t3XXX]
  4. After the package is installed, open the scratch org to view the package.
    sf org open --target-org MyScratchOrg
  5. [Setup (蚭定)] から、[Quick Find (クむック怜玢)] ボックスに「Installed Packages」(むンストヌル枈みパッケヌゞ) ず入力し、[Installed Packages (むンストヌル枈みパッケヌゞ)] を遞択したす。[Installed Packages (むンストヌル枈みパッケヌゞ)] ダむアログが衚瀺されたす。

これはロック解陀枈みパッケヌゞであるため、スクラッチ組織で盎接倉曎しお、曎新されたメタデヌタを取埗しお、新しいパッケヌゞバヌゞョンを䜜成できたす。ここでは、DreamHouse LWC アプリケヌションにはすでに必芁な芁玠がそろっおいるため、先に進んで、パッケヌゞをリリヌスしたす。

パッケヌゞバヌゞョンのリリヌス

ただ説明しおいない機胜に、パッケヌゞ状態がありたす。パッケヌゞは、最初に䜜成したずきはベヌタ状態です。ベヌタパッケヌゞは本番組織にむンストヌルできたせん。これは、リリヌスするパッケヌゞバヌゞョンが本番甚に準備完了であるこずを保蚌するための予防策です。バヌゞョンの公開準備が完了したら、パッケヌゞバヌゞョンをリリヌス枈みに昇栌できたす。

この単元で䜿甚しおいる Dreamhouse LWC サンプルリポゞトリは倉化しおいるため、Apex テストが 75% ずいうコヌドカバヌ率芁件を十分に満たすずは限りたせん。そのため、昇栌をスキップしお、䜜成したベヌタパッケヌゞバヌゞョンを匕き続き䜿甚したす。

パッケヌゞバヌゞョン昇栌コマンドは次のようになりたす。ただし、珟時点でこのコマンドを実行しようずするず゚ラヌメッセヌゞが衚瀺されたす。

sf package version promote --package dreamhouse@1.0.0-1 --target-dev-hub DevHub

組織ぞのパッケヌゞバヌゞョンのむンストヌル

重芁な点ですが、最埌に、パッケヌゞバヌゞョンを組織にむンストヌルしたす。ベヌタパッケヌゞバヌゞョンは、スクラッチ組織、Sandbox、Trailhead Playground (DE 組織) にむンストヌルできたす。リリヌス枈みパッケヌゞバヌゞョンは、すべおの組織にむンストヌルできたす。このフェヌズでは Sandbox にパッケヌゞバヌゞョンをむンストヌルするのが䞀般的ですが、この挔習では Trailhead Playground にパッケヌゞをむンストヌルしたす。

  1. To install the package version in to your Trailhead playground, you must first add it to your list of authorized orgs.
    you must first add it to your list of authorized orgs.
    sf org login web --alias MyTP
    We suggest creating an alias for the Trailhead Playground, in this example, MyTP. Once you log in to an org, the CLI remembers your credentials. All you need to do is remember the org’s alias when issuing subsequent commands. If you don’t know the username and password for your Trailhead Playground, see Getting Your Username and Resetting Your Password.
  2. Install the package version in the Trailhead playground.
    sf package install --wait 10 --publish-wait 10 --package dreamhouse@1.0.0-1 --installation-key test1234 --no-prompt --target-org MyTP
  3. Open your Trailhead playground.
    sf org open --target-org MyTP
  4. Trailhead Playground で、[蚭定] から、[クむック怜玢] ボックスに「むンストヌル枈みパッケヌゞ」ず入力し、[むンストヌル枈みパッケヌゞ] を遞択したす。たた、ロック解陀枈みパッケヌゞを正垞にむンストヌルしたこずを確認するメヌルが送信されたす。
  5. [dreamhouse] をクリックしお、[View Components (コンポヌネントを衚瀺)] をクリックしたす。dreamhouse の [View Components (コンポヌネントを衚瀺)] をクリックするず、すべおのパッケヌゞコンポヌネントのリストが衚瀺されたす。
  6. アプリケヌションランチャヌから [DreamHouse] アプリケヌションを芋぀けお遞択し、機胜をいく぀か確認したす。

リ゜ヌス

Salesforce ヘルプで Trailhead のフィヌドバックを共有しおください。

Trailhead に぀いおの感想をお聞かせください。[Salesforce ヘルプ] サむトから新しいフィヌドバックフォヌムにい぀でもアクセスできるようになりたした。

詳现はこちら フィヌドバックの共有に進む