https://github.com/trailheadapps/ebikes-lwc
E-BikesはLightning Web Componentsを使ってどの様にアプリケーションを開発するかを表したサンプルのアプリケーションです。E-Bikesか架空の自転車メーカーで、このアプリケーションはリッチーなユーザ体験を提供し、自社の製品及びリセラーの注文を管理するのに役立ちます。
E-Bikesのインストールには2種類の方法があります:
- スクラッチ組織の利用: おすすめのインストールオプションです。アプリ及びコードを体験したい開発者はこのオプションを使用して下さい。
- ロック解除済みパッケージの利用: このオプションはサンプルアプリケーションをローカルの開発環境を使わずに、誰でも体験することができます。
- クイックスタート: Lightning Web Components Trailheadプロジェクトに従って、環境をセットアップします。このステップには以下が含まれます:
- Trailhead PlaygroundでのDev Hubの有効化
- Salesforce CLIのインストール
- Visual Studio Codeのインストール
- Visual Studio Code Salesforce extensionsのインストール(Lightning Web Components extension を含む)
- まだ実施していない場合には, Hub組織への認証とエイリアスを設定します(以下のコマンドでは myhuborg):
sfdx force:auth:web:login -d -a myhuborg
- リポジトリをクローンします:
git clone https://github.com/trailheadapps-jp/ebikes-lwc-jp
cd ebikes-lwc-jp
- スクラッチ組織を作成し、エイリアスを設定します(以下のコマンドではebikes):
sfdx force:org:create -s -f config/project-scratch-def.json -a ebikes
- スクラッチ組織にアプリケーションをプッシュします:
sfdx force:source:push
- ebikes 権限セットをデフォルトユーザにアサインします:
sfdx force:user:permset:assign -n ebikes
- サンプルデータをロードします:
sfdx force:data:tree:import --plan ./data/sample-data-plan.json
- スクラッチ組織を開きます:
sfdx force:org:open
-
設定から、テーマおよびブランド設定に行き、Lightning Liteテーマを有効化します。
-
アプリケーションランチャーからE-Bikesアプリケーションを選択します。
-
サインアップ からDeveloper Edition (DE) 組織を取得します。
-
私のドメインをDE組織で有効化します。手順についてはこちらを参考にして下さい。
-
このリンクをクリックしてE-Bikesのロック解除済みパッケージをDE組織にインストールします。
-
すべてのユーザにインストールを選択します。
-
設定から、テーマおよびブランド設定に行き、Lightning Liteテーマを有効化します。
-
取引先のデータをインポートします:
- こちらをクリックしてaccounts.csv ファイルへアクセスします。ブラウザ上で右クリックし、ファイルをaccounts.csvとして保存します。
- 設定からデータインポートとクイック検索ボックスに入力し、データインポートウィザードを選択します。
- ウィザードを起動するをクリックします。
- 標準オブジェクトタブをクリックし取引先と取引先責任者をクリックし、新規レコードを追加をクリックします。
- 保存したaccounts.csvファイルをアップロードエリアにドロップします。
- 次へ、次へとクリックし、インポート開始をクリックします。
- 製品ファミリーデータのインポート:
- こちらをクリックしてproduct_families.csv ファイルへアクセスします。ブラウザ上で右クリックし、ファイルをproduct_families.csvとして保存します。
- 設定からデータインポートとクイック検索ボックスに入力し、データインポートウィザードを選択します。
- ウィザードを起動するをクリックします。
- カスタムオブジェクトタブをクリックし製品ファミリーをクリックし、新規レコードを追加をクリックします。
- 保存したproduct_families.csvファイルをアップロードエリアにドロップします。
- 次へ、次へとクリックし、インポート開始をクリックします。
- 製品データのインポート:
- こちらをクリックしてproducts.csv ファイルへアクセスします。ブラウザ上で右クリックし、ファイルをproducts.csvとして保存します。
- 設定からデータインポートとクイック検索ボックスに入力し、データインポートウィザードを選択します。
- ウィザードを起動するをクリックします。
- カスタムオブジェクトタブをクリックし製品をクリックし、新規レコードを追加をクリックします。
- 新規レコードを追加 メニューの中の 製品ファミリー参照項目を設定するためにファイルのどの製品ファミリー項目を照合しますか? ドロップダウンメニューから製品ファミリー 名前を選択します。
- 保存したproducts.csvファイルをアップロードエリアにドロップします。
- 次へ、次へとクリックし、インポート開始をクリックします。
- アプリケーションランチャーからE-Bikesアプリケーションを選択します。
このリポジトリトリには、モダンなWeb開発ツールをSalesforce開発のプロセスに統合したり、継続的インテグレーション及び継続的デプロイメントプロセスを実施するのに役立ついくつかのファイルが含まれています。
Prettier はコードベースを横断して統一したフォーマットを保証するコードフォーマッタです。PrettierをVisual Studio Codeと一緒に使うにはこのextensionをVisual Studio Code Marketplaceからインストールします。リポジトリの一部として提供されている .prettierignore と .prettierrc ファイルがPrettierフォーマッタの挙動をコントロールします。
ESLint は構文エラーや誤った構成要素を見つける一般的なJavaScriptのlintツールです。ESLintをVisual Studio Codeと一緒に使うにはこのextensionをVisual Studio Code Marketplaceからインストールします。 リポジトリの一部として提供されている .eslintignore ファイルで、Lighning Web Components開発において不必要なファイルへのlintプロセスを除外します。
リポジトリにはgit commit
による変更のたびに、pre-commit hookによってPrettierおよびESLintを動作させコードフォーマット及びlintを行うための package.json ファイルが含まれています。
フォーマット及びlintをpre-commit hookで動作させる設定を行います:
- まだ実施していない場合にはNode.jsをインストールします。
npm install
をプロジェクトルートフォルダで実行し、ESLint及びPrettierモジュールをインストールします (注意: MacユーザはXcode command line toolsがインストールされていることをこのコマンドの実行前に確認してください)。
Prettier及びESLintは自動的にcommitによる変更を行うたびに実行されます.lintエラーが検出された場合にcommitは失敗します.また以下のコマンドでフォーマット及びlintをコマンドラインから実行できます (package.jsonで完全なリストを確認できます):
npm run lint:lwc
npm run prettier
-
製品エクスプローラー タブをクリックします。
-
左側にあるフィルターでコンポーネントでリストをフィルタリングします。
-
タイル上のリストの製品をクリックして製品カードの詳細を確認します。
-
製品カードの拡張アイコンをクリックして、製品レコードページへ遷移します。
-
製品レコードページでは類似製品コンポーネントの機能があります。
-
詳細を見るボタンをクリクして、類似製品のレコードページへ遷移します。
-
代理店注文タブの矢印メニューをクリックし新規代理店注文をクリックします。
-
ホイールワークなどの取引先を選択し保存を押します。
-
右側の製品リストから中央のグレーのパネルへ製品をドラッグします。製品が注文明細として自動的に注文に追加されます。
-
小(S), 中(M), 大(L)などの注文の数量などを変更し、保存ボタンをクリックします(チェックアイコン).
-
3 及び 4 のステップを繰り返し、製品を注文に追加します。
-
注文アイテムのタイルの上にマウスを置き、ごみ箱アイコンをクリックして、注文から注文明細を削除します。
取引先レコードページでは取引先地図コンポーネントが取引先の所在地を地図上に表示する機能があります。