Web Performance Optimization & Lighthouse · レッスン

CLIとプログラムによるLighthouse

コマンドラインからLighthouse監査を実行し、そのAPIをカスタムスクリプトやアプリケーションに統合する方法を学びます。

レッスン 1/411 ステップ

「CLIとプログラムによるLighthouse」はCoddyKit上の無料Web Performance Optimization & Lighthouseレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはWeb Performance Optimization & Lighthouse学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Web Performance Optimization & Lighthouseコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

Beyond the Browser

You've likely used Lighthouse in your browser's DevTools. But what if you want to run audits automatically or integrate them into your workflow?

This lesson explores how to use Lighthouse from the command line (CLI) for quick checks and programmatically via its Node.js API for advanced automation.

Automate & Integrate

Running Lighthouse from the CLI or programmatically opens up powerful possibilities:

  • Automation: Schedule regular audits without manual intervention.
  • CI/CD Integration: Catch performance regressions early in your development pipeline.
  • Custom Reports: Generate reports tailored to your specific needs.
  • Large-Scale Testing: Audit many pages efficiently across a website.

Get Lighthouse CLI

To use Lighthouse from the command line, you need Node.js installed on your system. Once Node.js is ready, you can install the Lighthouse CLI globally using npm:

npm install -g lighthouse

This command makes the lighthouse command available directly in your terminal, allowing you to run audits from any directory.

Run a Basic CLI Audit

With Lighthouse CLI installed, running an audit is straightforward. Just provide the URL you want to test. By default, it outputs a summary to the console and generates an HTML report.

lighthouse https://www.example.com

This will launch a headless Chrome instance, run the audit, and then generate an HTML report file in your current directory named after the URL.

Choose Your Output

The Lighthouse CLI can generate reports in different formats. You can specify the output type and path using flags:

  • --output html: Generates a user-friendly HTML report (default).
  • --output json: Provides raw audit data in JSON format for parsing.
  • --output csv: Exports a summary of key metrics as a CSV file.

Try running an audit and saving the output as JSON:

lighthouse https://www.example.com --output json --output-path ./report.json

Customize Your Audit

You can fine-tune your audits with various options to simulate different user conditions or focus on specific aspects:

  • --throttling-preset: Simulates different network and CPU conditions (e.g., mobile, desktop).
  • --only-categories: Focuses the audit on specific categories (e.g., performance, accessibility).

Example: Audit only performance for a desktop user:

lighthouse https://www.example.com --throttling-preset desktop --only-categories performance

Lighthouse as an API

For deeper integration and more control, Lighthouse offers a Node.js API. This allows you to embed Lighthouse directly into your JavaScript applications, giving you full control over the audit process and access to the raw results.

It typically uses Puppeteer, a Node library, to programmatically control a headless Chrome browser instance for the audit.

Basic Programmatic Audit

Let's create a simple Node.js script to run a Lighthouse audit. First, ensure you have lighthouse and chrome-launcher installed in your project:

npm install lighthouse chrome-launcher

Then, create a .js file (e.g., audit.js) with the following code:

const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

async function runLighthouseAudit(url) {
  // Launch a headless Chrome instance
  const chrome = await chromeLauncher.launch({
    chromeFlags: ['--headless']
  });

  // Configure Lighthouse options
  const options = {
    logLevel: 'info',
    output: 'json',
    port: chrome.port // Connect to the launched Chrome instance
  };

  // Run Lighthouse audit
  const runnerResult = await lighthouse(url, options);

  console.log('Audit complete for %s', runnerResult.lhr.finalUrl);
  console.log('Performance score: %s', runnerResult.lhr.categories.performance.score * 100);

  // Kill the Chrome instance
  await chrome.kill();
}

// Call the function with a URL to audit
runLighthouseAudit('https://www.example.com');

Extracting Audit Data

The runnerResult object contains a wealth of data about the audit (lhr stands for Lighthouse Result). You can programmatically access scores, specific audit details, and more.

Here's how to extract the Performance score and First Contentful Paint (FCP) value from the results:

const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

async function extractAuditData(url) {
  const chrome = await chromeLauncher.launch({
    chromeFlags: ['--headless']
  });
  const options = {
    port: chrome.port
  };
  const runnerResult = await lighthouse(url, options);

  // Access the overall performance score
  const performanceScore = runnerResult.lhr.categories.performance.score * 100;

  // Access a specific audit result by its ID (e.g., First Contentful Paint)
  const fcpAudit = runnerResult.lhr.audits['first-contentful-paint'];

  console.log(`Performance Score: ${performanceScore}%`);
  console.log(`First Contentful Paint: ${fcpAudit.displayValue}`);

  await chrome.kill();
}

extractAuditData('https://www.example.com');

When to Use What?

You've learned about both CLI and programmatic Lighthouse. Which of the following are ideal use cases for using Lighthouse programmatically (via its Node.js API)?

Recap: CLI & API Power

Great job! You've explored the power of Lighthouse beyond the browser.

  • The Lighthouse CLI is perfect for quick, on-demand audits and simple report generation directly from your terminal.
  • The Lighthouse Node.js API provides deep integration capabilities, enabling automation, custom reporting, and embedding performance checks into complex applications and workflows.

These tools are essential for maintaining and improving web performance at scale and integrating audits into your development process.

無料で開始

AI チューターと学ぶ Web Performance Optimization & Lighthouse — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
12
レッスン
48

よくある質問

「CLIとプログラムによるLighthouse」レッスンは無料ですか?

はい。「CLIとプログラムによるLighthouse」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Web Performance Optimization & Lighthouseコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Web Performance Optimization & Lighthouseコースには全4レッスンが含まれています。

「CLIとプログラムによるLighthouse」で何を学びますか?

コマンドラインからLighthouse監査を実行し、そのAPIをカスタムスクリプトやアプリケーションに統合する方法を学びます。 ブラウザで直接実行するハンズオンコードでWeb Performance Optimization & Lighthouseを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Web Performance Optimization & Lighthouseを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのWeb Performance Optimization & Lighthouseは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「CLIとプログラムによるLighthouse」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このWeb Performance Optimization & Lighthouseレッスンでコードを書いて実行できますか?

はい。すべてのWeb Performance Optimization & Lighthouseレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. CLIとプログラムによるLighthouse
  2. カスタム監査とアサーション
  3. LighthouseのCI/CDへの統合
  4. Lighthouseによるパフォーマンス予算
← Web Performance Optimization & Lighthouseに戻る