コードの分析と組織へのリリース
Lightning Web コンポーネント開発用の推奨ツールをインストールしました。そして、リリースが失敗することがわかっている壊れたコードをコピーして貼り付けました。おそらく皆さんは実際にこのようなことをしたことはないと思います。
JavaScript のエラーを修正する
開発者として最も重要なタスクは、インターネットで (正常に機能する) コードを検索した後、機能するコードを自分で記述することです。引き起こしたエラーを修正しましょう。まずは JavaScript ファイルからです。
-
Visual Studio Code を開きます。
-
myFirstWebComponent.js をクリックします。
- 赤の下線が引かれた
trackの上にマウスポインターを置きます。この特定のエラーに関連するエラーメッセージが表示されます。
@track myFirstWebComponent.js: LWC1102: Invalid ‘track’ decorator usage. Supported decorators (api, wire, track) should be imported from “lwc” lwc
-
[Problems (問題)] タブをクリックして、現在開いているファイルに含まれるすべてのエラーを表示します。次のように表示されます。
![Visual Studio の [Problems (問題)] に 2 つのエラー、「for:each directive is expected to be an expression (for:each ディレクティブは式であることが想定されています)」と「invalid track decorator usage (無効な track デコレーターの使用です)」が表示されている。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/projects/set-up-your-lightning-web-components-developer-tools/analyze-your-code-and-deploy-it-to-your-org/images/ja-JP/e3b1757586ed0f0be77ef21cccd8729d_kix.url86cozplvw.png)
現在のファイルと [Problems (問題)] タブの両方に、コード内で検出されたエラーが表示されます。
最初のエラーメッセージは、Lightning Web コンポーネントエンジンの要件の結果であることを示しています。そのようなエラーには「LWC」が含まれ、その後に数字が続きます。コードをよく見ると、1 行目で lwc エンジンから LightningElement をインポートしていますが、track はインポートしていません。これを修正しましょう。
- 中かっこ内の
LightningElementのすぐ後を右クリックします。
-
track(トラック) と入力します。2 つの語はカンマで区切ってください。次のようなコードになります。import { LightningElement, track } from 'lwc'; - macOS の場合は Command + S、Windows または Linux の場合は Ctrl + S を押して、ファイルを保存します。
両方のエラーと赤線がなくなります。
でも待ってください。両方のエラーはなぜ消えたのでしょうか?
Lightning Web コンポーネント拡張機能には、デフォルトで ESLint が含まれています。ESLint はコードのエラー、コーディングのベストプラクティスなどを評価する構文チェックツールです。Salesforce では、Lightning Web コンポーネント開発者が優れたコードを記述できるよう特定の ESLint ルールを標準で提供しています。間違えた場合は、コードをリリースする前に構文チェックルールで見つけることができます。素晴らしいですね。
このエラーメッセージは、プロパティ (この場合はデコレーター track) を定義したが、使用する前に宣言していないことを意味します。これは、コードをクリーンでメンテナンスしやくするために非常に役に立つ、数多くある構文チェックルールの 1 つです。
lwc メタデータフォルダーに自動的に追加された .eslintrc ファイルを覚えていますか? これは、Salesforce 固有の構文チェックルールを定義する設定ファイルです。
{
"extends": ["@salesforce/eslint-config-lwc/recommended"]
}Salesforce では base、recommended、extended を含むさまざまなルールセットが提供されています。これらの構文チェックルールはプロジェクトに固有のものなので、プロジェクトごとに異なるルールセットを使用できます。
ESLint または Salesforce が提供する構文チェックルールについての詳細は、GitHub リポジトリを参照してください。
JavaScript ファイルが正常に機能するようになったので、次は Web コンポーネントテンプレートの HTML マークアップを修正しましょう。
HTML テンプレートのエラーを修正する
JavaScript ファイルのエラーを修正したので、次は Visual Studio Code のインテリセンス機能を Salesforce Lightning Web コンポーネント拡張機能と連携して使用する方法を学習します。
- Visual Studio Code で myFirstWebComponent.html を開きます。
- 赤の下線が引かれた
for:each属性の空の中かっこ内にカーソルを置きます。
-
Ctrl + Space キーを押します。インテリセンスドロップダウンが表示されます。

-
[contact] を選択し、Enter キーを押して
contactを挿入します。
-
sを付けてcontactsと複数形にします。
- 次に、赤でマークされた
divタグにkey={contact.Id}という属性を追加します。 - macOS の場合は Command + S、Windows または Linux の場合は Ctrl + S を押して、ファイルを保存します。
コードは次のようになります。
<template>
<lightning-card title="ContactInformation" icon-name="custom:custom14">
<div class="slds-m-around_medium">
<template for:each={contacts} for:item="contact">
<div key={contact.Id}>
{contact.Name}, {contact.Title}
</div>
</template>
</div>
</lightning-card>
</template>コードを修正しているときに、次の 2 つのことがありました。
1 つ目は、HTML マークアップ内の式にインテリセンスが表示されたことです。Lightning Web コンポーネント拡張機能ではインテリセンスを使用できます。つまり、JavaScript ファイルにほかのプロパティまたは関数を追加すると、それらは自動的にテンプレートファイル内で使用できるようになります。これは大幅な時間の節約になります。
2 つ目は、その場でコード (この場合はマークアップ) の検証が行われたことです。これは JavaScript ファイルと同様です。たとえば、必要な属性がなければ、IDE によって指摘されます。
また、テンプレート内のすべての Lightning 基本コンポーネントでインテリセンスを使用できます。<lightningと入力し始めると、次のようなリストが表示されます。

さらに、既存のマークアップの上にカーソルを置くと、選択した基本コンポーネントに関する豊富な情報が表示されます。

新しい Lightning Web コンポーネントをリリースして設定する
すべてのコードを修正したところで、次はローカルメタデータをスクラッチ組織にプッシュします。
- 組織にメタデータをリリースするには、[Terminal (ターミナル)] タブに次のコマンドを入力します。
sf project deploy start --target-org scratchOrg -
Enter キーを押します。
メタデータがスクラッチ組織に正常にプッシュされたら、コンポーネントを Account (取引先) レコードレイアウトに追加できます。
- スクラッチ組織を開くには、[Terminal (ターミナル)] タブに次のコマンドを入力します。
sf org open --target-org scratchOrg -
Enter キーを押します。
次は、Account (取引先) レコードページを設定しましょう。
- アプリケーションランチャー (
) で、[Sales (セールス)] を見つけて選択します。
-
[Accounts (取引先)] タブをクリックし、[New (新規)] をクリックして取引先を作成します。
- [Account Name (取引先名)] に
Component Developers(コンポーネント開発者) と入力し、[Save (保存)] をクリックします。
- [Setup (設定)] (
) をクリックし、[Edit Page (ページを編集)] を選択して Lightning アプリケーションビルダーを開きます。
-
myFirstWebComponent コンポーネント ([Custom (カスタム)] の下) をページにドラッグします。
- Lightning アプリケーションビルダーのメニューバーで、[Desktop (デスクトップ)] をクリックしてドロップダウンを開き、[Phone (電話)] を選択します。
-
myFirstWebComponent コンポーネントがページに表示されていることを確認します。
-
[Save (保存)] をクリックし、[Activate (有効化)] をクリックします。
-
[Assign as Org Default (組織のデフォルトとして割り当て)] をクリックし、[Desktop and phone (デスクトップおよび電話)] を選択します。
-
[Next (次へ)]、[Save (保存)] の順にクリックします。
- [Back (戻る)] (
) をクリックして取引先レコードに戻ります。
Lightning Web コンポーネントは次のようになります。![Component Developers (コンポーネント開発者) 取引先の [Related (関連)] タブで、ContactInformation コンポーネントに取引先責任者がリストされる。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/projects/set-up-your-lightning-web-components-developer-tools/analyze-your-code-and-deploy-it-to-your-org/images/ja-JP/6dad761fb9a461f8e70bbf9a2a6815ab_kix.gcc8i99ttarv.png)
最後となる次のステップでは、ローカル開発 CLI ツールを使用してブラウザーで Lightning アプリケーションのローカルプレビューを実行する方法を学習します。
スクラッチ組織では作業をチェックできませんが、[Verify Step (ステップを確認)] をクリックしてプロジェクトの次のステップに進むことができます。
