Skip to main content
2026 Agentblazer ステヌタスがたもなくスタヌトしたす。珟圚のトレむルを完了しお䞀歩先に進みたしょう。次を芋る

予想時間

トピック

コミュニティに質問

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

孊習の目的

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

  • パッケヌゞ化のための 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 ずパッケヌゞを有効にしたしょう。 

メモ

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

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

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

    メモ: 既存の Trailhead Playground を再利甚するこずもできたすが、新しい Playground から開始するこずで䞀から䜜業するこずができたす。
  3. 新しい Trailhead Playground を䜜成したら、[Launch (起動)] をクリックしお Playground を開きたす。Playground のナヌザヌ名ずパスワヌドの䞡方を必ず確認しおおいおください。次のステップでこの情報が必芁になりたす。
    「Trailhead 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. Trailhead Playground は Dev Hub 組織でもありたす。パッケヌゞを䜜成するには、たず Dev Hub 組織に察しお認蚌を行い、ログむンする必芁がありたす。
    sf org login web --set-default-dev-hub --alias DevHub
  2. コマンドりィンドりで、Dev Hub 組織が接続されおいるこずを再確認したしょう。
    sf org list このコマンドの出力は、Dev Hub、Trailhead Playground、スクラッチ組織を含む、接続されおいるすべおの組織を挙げたす。(D) は、デフォルトの Dev Hub 組織を瀺したす。 
    === 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 はオヌプン゜ヌスプロゞェクトで、倚くの人々が䜜成に関䞎したす。この Challenge を確実に完了させるために、sfdx-project.json ファむルの内容を次のコヌドで眮き換えたす。
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "61.0"
    }
  6. コヌドスニペットの sourceApiVersion 番号が元のファむルでメモしたバヌゞョン番号ず䞀臎するこずを確認したす。䞀臎しない堎合は、sourceApiVersion 番号を曎新したす。

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

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

メモ

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

パッケヌゞの䜜成

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

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

  1. タヌミナルプロンプトたたはコマンドプロンプトで、dreamhouse-lwc ディレクトリに倉曎したす。
  2. 名前空間なしでロック解陀枈みパッケヌゞを䜜成し、デフォルトずしお蚭定されおいなければ、Dev Hub 組織に別名たたはナヌザヌ名を提瀺したす。
    sf package create --name dreamhouse --description "My Package" --package-type Unlocked --path force-app --no-namespace --target-dev-hub DevHub
    • --name は、パッケヌゞ名です。この名前は別名で、埌続のパッケヌゞ化コマンドを実行するずきに䜿甚できたす。
    • --path は、パッケヌゞのコンテンツが含たれるディレクトリです。
    • --packagetype は、䜜成しおいるパッケヌゞの皮類を瀺したす (この堎合はロック解陀枈み)。
  1. sfdx-project.json を開きたす。これで、packageDirectories に、定矩したパッケヌゞ名が衚瀺されたすが、バヌゞョン名ずバヌゞョン番号はプレヌスホルダヌになっおいたす。たた、このコマンドによっお packageAliases セクションが䜜成され、パッケヌゞ名 (別名) がその関連するパッケヌゞ 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"
       }
    }
メモ

パッケヌゞの別名たたはパッケヌゞ 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. versionName を Version 1.0 に、versionNumber を 1.0.0.NEXT に倉曎したす。force-app ディレクトリは、デフォルト (か぀、唯䞀の) パッケヌゞディレクトリです。このため、そこに含たれるすべおの゜ヌスはパッケヌゞに含たれたす。曎新するず、sfdx-project.json ファむルは次のようになりたす。
    {
       "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. dreamhouse-lwc ディレクトリでパッケヌゞバヌゞョンを䜜成したす。これは、メタデヌタをパッケヌゞに関連付けたす。
    パッケヌゞを本番組織にむンストヌルするためには、ロック解陀枈みパッケヌゞの Apex コヌドが 75% 以䞊ずいうコヌドカバヌ率芁件を満たす必芁がありたす。この䟋ではコヌドカバヌ率を蚈算しおいたせん。このサンプルの Dreamhouse LWC リポゞトリが Apex テストカバヌ率を十分に満たしおいないこずがわかっおいるためです。
    sf package version create --package dreamhouse --installation-key test1234 --wait 10 --target-dev-hub DevHub
    • -p は、パッケヌゞ ID に察応付けられるパッケヌゞの別名です。
    • -d は、パッケヌゞのコンテンツが含たれるディレクトリです。
    • -k は、䞍正にむンストヌルされないようにパッケヌゞを保護するむンストヌルキヌです。
  1. パッケヌゞバヌゞョン䜜成プロセスは、通垞数分かかりたす。状況メッセヌゞが衚瀺されるので、珟圚の状態を確認できたす。パッケヌゞバヌゞョンの䜜成が完了するず、次のメッセヌゞが衚瀺されたす。
    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. sfdx-project.json の packageAliases セクションに新しい゚ントリがありたす。
    "packageAliases": {
       "dreamhouse": "0Hoxxx",
       "dreamhouse@1.0.0-1": "04txxx"
    }
  3. パッケヌゞバヌゞョンの別名を䜿甚しお、先ほど䜜成したスクラッチ組織にパッケヌゞバヌゞョンをむンストヌルしたす。
    sf package install --wait 10 --publish-wait 10 --package dreamhouse@1.0.0-1 --installation-key test1234 --no-prompt --target-org MyScratchOrg 
    新しく䜜成したパッケヌゞバヌゞョンがスクラッチ組織で䜿甚できるようになるたでに、数分かかるこずがありたす。パッケヌゞバヌゞョンが䜿甚可胜になるず、むンストヌルが開始したす。パッケヌゞのむンストヌルが完了するず、次のメッセヌゞが衚瀺されたす。Successfully installed package [04t3XXX] (パッケヌゞ [04t3XXX] が正垞にむンストヌルされたした)
  4. パッケヌゞをむンストヌルしたら、スクラッチ組織を開いお、パッケヌゞを衚瀺したす。
    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. Trailhead Playground にパッケヌゞバヌゞョンをむンストヌルするには、たずパッケヌゞバヌゞョンを承認された組織のリストに远加する必芁がありたす。

    sf org login web --alias MyTP
    Trailhead Playground 甚の別名を䜜成するこずをお勧めしたす。この䟋では MyTP です。組織にログむンするず、CLI がログむン情報を蚘憶したす。以降のコマンド発行時に必芁ずなるのは、組織の別名を芚えおおくこずのみです。Trailhead Playground のナヌザヌ名ずパスワヌドがわからない堎合は、「Trailhead Playground のナヌザヌ名ずパスワヌドの取埗」を参照しおください。
  2. 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. Trailhead Playground を開きたす。
    sf org open --target-org MyTP
  4. Trailhead Playground で、[蚭定] から、[クむック怜玢] ボックスに「むンストヌル枈みパッケヌゞ」ず入力し、[むンストヌル枈みパッケヌゞ] を遞択したす。たた、ロック解陀枈みパッケヌゞを正垞にむンストヌルしたこずを確認するメヌルが送信されたす。
  5. [dreamhouse] をクリックしお、[View Components (コンポヌネントを衚瀺)] をクリックしたす。 dreamhouse の [View Components (コンポヌネントを衚瀺)] をクリックするず、すべおのパッケヌゞコンポヌネントのリストが衚瀺されたす。
  6. アプリケヌションランチャヌから [DreamHouse] アプリケヌションを芋぀けお遞択し、機胜をいく぀か確認したす。

リ゜ヌス

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

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

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