CentOS7 CLIでLighthouseを実行する
/ 2 min read
Table of Contents
ウェブアプリの品質を計測してくれるLighthouseをCentOS7環境のCLIで実行する方法をまとめました。
同時に、Chromiumのオプション --no-sandbox
を指定せずにPuppeteerを実行する方法を検証しました。
検証環境
- Docker Toolbox 18.09.3
- VirtualBox 5.2.20
- CentOS 7
- Node.js 12.7.0
- Puppeteer 1.19.0
- Chromium 674921
- Lighthouse 5.2.0
検証リポジトリ: https://github.com/cuavv/sandbox-lighthouse
Node.jsをインストール
% curl -sL https://rpm.nodesource.com/setup_12.x | bash -% yum install -y nodejs
Node.js公式のバイナリディストリビューションがNodeSourceによって提供されています。
参考: https://nodejs.org/ja/download/package-manager/
Yarnをインストール
% curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo% yum install -y yarn
参考: https://yarnpkg.com/en/docs/install#centos-stable
Puppeteerをインストール
% yarn global add puppeteer
% cat /usr/local/share/.config/yarn/global/node_modules/puppeteer/package.json | grep -e version -e chromium "version": "1.19.0", "chromium_revision": "674921":
不足しているモジュールをインストール
% yum install -y pango.x86_64 \ libXcomposite.x86_64 \ libXcursor.x86_64 \ libXdamage.x86_64 \ libXext.x86_64 \ libXi.x86_64 \ libXtst.x86_64 \ cups-libs.x86_64 \ libXScrnSaver.x86_64 \ libXrandr.x86_64 \ GConf2.x86_64 \ alsa-lib.x86_64 \ atk.x86_64 \ gtk3.x86_64 \ ipa-gothic-fonts \ xorg-x11-fonts-100dpi \ xorg-x11-fonts-75dpi \ xorg-x11-utils \ xorg-x11-fonts-cyrillic \ xorg-x11-fonts-Type1 \ xorg-x11-fonts-misc% yum update nss -y
Sandboxを設定
% cd /usr/local/share/.config/yarn/global/node_modules/puppeteer/.local-chromium/linux-674921/chrome-linux/% chown root:root chrome_sandbox% chmod 4755 chrome_sandbox% cp -p chrome_sandbox /usr/local/sbin/chrome-devel-sandbox
[alternative] Setup setuid sandbox
Lighthouseをインストール
% yarn global add lighthouse
% yarn global list | grep lighthouseinfo "lighthouse@5.2.0" has binaries: - lighthouse
参考: https://github.com/GoogleChrome/lighthouse
Lighthouseを実行
# rootで実行するとエラーになるためユーザーを作成% useradd test% su - test
# 必要な環境変数を設定% export CHROME_PATH=/usr/local/share/.config/yarn/global/node_modules/puppeteer/.local-chromium/linux-674921/chrome-linux/chrome% export CROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox
# ChromeをHeadlessモードで実行% lighthouse --output html --output-path ./report.html --throttling-method=provided --chrome-flags="--headless" https://www.google.com
補足
このコマンドを実行するとスマホ表示のスコアを計測します。PC表示のスコアを計測する場合はオプション --emulated-form-factor=none
を追加してください。