高速化を目指して懸命に取り組んだところで、次は自動化して高速化を実現しましょう。 Lighthouse Bot を使用したパフォーマンス テスト。
Lighthouse によるアプリの採点 5 つのカテゴリがあり その一つがパフォーマンスです覚えておいてください DevTools でパフォーマンスの変化をモニタリングする または Lighthouse CLI を 自分でコードを編集する必要はありません。面倒な作業をツールで処理できる 提供します。Travis CIは 新しいコードを push するたびに、クラウドでアプリのテストを自動的に実行します。
Lighthouse Bot は Travis CI と統合されており、パフォーマンス バジェット機能により 気づかずに誤ってパフォーマンスを低下させる心配はありません。Lighthouse スコアが設定したしきい値(96/100 未満など)を下回った場合に、プルリクエストのマージを許可しないようにリポジトリを構成できます。
で確認できます。localhost でパフォーマンスをテストできますが、多くの場合、サイトのパフォーマンスは本番環境のサーバーで異なります。より現実的な状況を把握するには、 サイトをステージング サーバーにデプロイ します。任意のホスティング サービスを使用できます。 Firebase Hosting について 回転させてください。
1. セットアップ
このシンプルなアプリは、3 つの数値を並べ替えるのに役立ちます。
GitHub からサンプルのクローンを作成する GitHub アカウントにリポジトリとして追加します。
2. Firebase にデプロイする
開始するには、Firebase アカウントが必要です。準備ができたら、[プロジェクトを追加] をクリックして、Firebase コンソールで新しいプロジェクトを作成します。
Firebase へのデプロイ
以下をデプロイするには、Firebase CLI が必要です。 。すでにインストールされている場合でも、 次のコマンドで CLI を最新バージョンに更新します。
npm install -g firebase-tools
Firebase CLI を承認するには、次のコマンドを実行します。
firebase login
次に、プロジェクトを初期化します。
firebase init
設定中にコンソールから次の質問に回答します。
- 機能を選択するように求められたら、[Hosting] を選択します。
- デフォルトの Firebase プロジェクトとして、Firebase コンソールで作成したプロジェクトを選択します。
- 公開ディレクトリとして「public」と入力します。
- 「N」と入力しますシングルページ アプリとして設定する必要はありません。
このプロセスにより、プロジェクト ディレクトリのルートに firebase.json
構成ファイルが作成されます。
これでデプロイの準備が整いました。次のコマンドを実行します。
firebase deploy
数秒でアプリが公開されます。
3. Travis の設定
Travis でアカウントを登録してから、 プロファイルの [Settings] セクションで GitHub Apps Integration を有効にします。
アカウントを作成したら
プロフィールの下の [設定] に移動し、[アカウントを同期] ボタンをクリックして、 プロジェクト リポジトリが Travis に一覧表示されます。
継続的インテグレーションを開始するには、次の 2 つが必要です。
- ルート ディレクトリに
.travis.yml
ファイルを配置する - 通常の git push を実行してビルドをトリガーする
lighthouse-bot-starter
リポジトリには、すでに .travis.yml
YAML ファイルがあります。
language: node_js
node_js:
- "8.1.3"
install:
- npm install
before_script:
- npm install -g firebase-tools
script:
- webpack
YAML ファイルは、すべての依存関係をインストールしてアプリをビルドするよう Travis に指示します。次は、サンプルアプリを独自の GitHub リポジトリに push します。まだ設定していない場合は、次のコマンドを実行します。
git push origin main
Travis の [Settings] でリポジトリをクリックして、プロジェクトの Travis を表示します。 できます。問題がなければ、数分以内にビルドが黄色から緑色に変わります。🎉
4. Travis を使用して Firebase のデプロイを自動化する
ステップ 2 では、Firebase アカウントにログインし、firebase deploy
を使用してコマンドラインからアプリをデプロイしました。Travis がアプリを Google Cloud の
認可する必要があります。手順は次のとおりです。Firebase トークンを使用します。🗝️🔥
Firebase を承認する
トークンを生成するには、次のコマンドを実行します。
firebase login:ci
ブラウザ ウィンドウに新しいタブが開き、Firebase で確認が行われます。その後、コンソールに新しく作成されたトークンが表示されます。コピーして Travis に戻ります。
プロジェクトの Travis ダッシュボードで、[その他のオプション] >[設定] >環境変数。
トークンを値フィールドに貼り付け、変数に FIREBASE_TOKEN
という名前を付けて追加します。
Travis の設定にデプロイを追加する
ビルドが成功するたびにアプリをデプロイするよう Travis に指示するには、次の行が必要です。
.travis.yml
ファイルの末尾に追加します。🔚
after_success:
- firebase deploy --token $FIREBASE_TOKEN --non-interactive
この変更を GitHub に push し、最初の自動デプロイを待機します。Travis ログを確認すると、すぐに ✔️ Deploy complete! と表示されます。
これで、アプリに変更を加えたら、その変更が Firebase に自動的にデプロイされるようになります。
5. Lighthouse Bot の設定
フレンドリーな Lighthouse Bot が、アプリの Lighthouse スコアをお知らせします。 リポジトリへの招待状のみが必要です。
GitHub でプロジェクトの設定に移動し、[lighthousebot] をコラボレータとして追加します([設定] > [コラボレータ])。
これらのリクエストの承認は手動プロセスであるため、すぐに承認されるとは限りません。テストを開始する前に、lighthousebot が承認していることを確認してください ステータスが表示されます。その間に、別のキーを Travis 上の環境変数を使用します。メールアドレスを入力すると、受信トレイに Lighthouse Bot キーが届きます。📬
Travis で、この鍵を環境変数として追加し、名前を LIGHTHOUSE_API_KEY
にします。
Lighthouse Bot をプロジェクトに追加する
次に、次のコマンドを実行して Lighthouse Bot をプロジェクトに追加します。
npm i --save-dev https://github.com/ebidel/lighthousebot
次の内容を package.json
に追加します。
"scripts": {
"lh": "lighthousebot"
}
Travis 設定に Lighthouse Bot を追加する
最後のヒントとして、プル リクエストのたびにアプリのパフォーマンスをテストします。
.travis.yml
で、after_success に別のステップを追加します。
after_success:
- firebase deploy --token $FIREBASE_TOKEN --non-interactive
- npm run lh -- https://staging.example.com
指定した URL に対して Lighthouse 監査が実行されるため、https://staging.example.com
はアプリの URL(your-app-123.firebaseapp.com)に置き換えてください。
標準を高く設定し、設定を調整して、変更を受け入れないようにする パフォーマンス スコアが 95 を下回るアプリ:
- npm run lh -- --perf=95 https://staging.example.com
Travis で Lighthouse Bot テストをトリガーする pull リクエストを送信する
Lighthouse Bot は pull リクエストのみをテストするため、メインブランチに push すると、 「このスクリプトは Travis PR リクエストでのみ実行できます」というメッセージが表示されます。を Travis ログ。
Lighthouse Bot テストをトリガーするには:
- 新しいブランチをチェックアウトします
- GitHub に push する
- pull リクエストを作成する
この pull リクエスト ページで少しお待ちください。Lighthouse Bot が歌うまでお待ちください。🎤
パフォーマンス スコアは非常に良好です。アプリは予算内ですが、チェックに合格しています。
Lighthouse のその他のオプション
Lighthouse では 5 種類のカテゴリがテストされていることを覚えていますか?特定のトピックに対してスコアを適用し、 Lighthouse Bot フラグ付きのもの:
--perf # performance
--pwa # progressive web app score
--a11y # accessibility score
--bp # best practices score
--seo # SEO score
例:
npm run lh -- --perf=93 --seo=100 https://staging.example.com
パフォーマンス スコアが 93 未満に下落するか、SEO スコアが 100 未満に下落すると、PR は不合格になります。
--no-comment
で Lighthouse Bot のコメントを受け取らないようにすることもできます。
選択します。