Ligtning Web コンポーネントをLightningページに配置できないときの確認箇所についての話。
Ligtning Web コンポーネントのファイル構成は次のように、「html」「js」「js-meta.xml」で構成されます。
- helloLwc.html
- helloLwc.js
- helloLwc.js-meta.xml
js-meta.xmlでAPIバージョンやどこで使用するかを定義できます。コンポーネントを追加可能な Lightning ページの種別を指定する際の選択肢は次の3つです。
- lightning__AppPage
- lightning__HomePage
- lightning__RecordPage
どこでも使えるようにするなら3種類全部を宣言して、レコードページのみなど特定の場所でのみ使用を許可するのであればそのように宣言します。
このようにtagets指定で配置可能なLightningページを制御できるのでもし選択肢に出てこないときにはここを確認します。
もう一点「isExposed」というフラグが存在しています。開発者ドキュメントには次のように説明がありました。
管理パッケージでコンポーネントを使用できるか (true)、否か (false) を示します。
これもLigthingページに配置できないときのチェックポイントとなります。
isExposed = false
isExposed = true
管理パッケージでコンポーネントを使用できるかということで、AppExchange開発のときぐらいしか関係ないと考えていましたが、それ以外でも関係のある場面があるようです。エビデンス的なものは見つけられなかったのですが、今回はTrailheadハンズオン組織のホームのページに配置しようとして「isExposed = false」だと配置できなかったという場面に遭遇しました。
ホームのページは特にパッケージインストールで作成されたものではなさそうですが、Trailheadハンズオン組織というもの自体が特殊な組織であるので、もしかすると管理パッケージ的な扱いになっているのかもしれません。(Developer Edtion組織など他で調査したとかでは無いので関係ない可能性もあります。)