Naučte se implementovat Frontend Lighthouse CI pro nepřetržité sledování výkonu, které zajistí optimální rychlost a uživatelský prožitek vašich webových aplikací.
Frontend Lighthouse CI: Nepřetržité sledování výkonu pro webové aplikace
V dnešním rychle se měnícím digitálním světě je výkon webových stránek klíčový. Pomalé načítání nebo špatně optimalizovaný web může vést k frustrovaným uživatelům, sníženému zapojení a v konečném důsledku k negativnímu dopadu na vaše podnikání. A právě zde přichází na řadu Lighthouse CI. Tento průvodce vás provede implementací Lighthouse CI pro nepřetržité sledování výkonu, což vám umožní proaktivně identifikovat a řešit výkonnostní problémy dříve, než ovlivní vaše uživatele.
Co je Lighthouse CI?
Lighthouse CI je open-source, automatizovaný nástroj pro testování výkonu, který se bez problémů integruje do vašeho procesu kontinuální integrace a kontinuálního doručování (CI/CD). Využívá auditovací nástroj Google Lighthouse k poskytování praktických poznatků o výkonu, přístupnosti, SEO a osvědčených postupech vašeho webu. Začleněním Lighthouse CI do vašeho pracovního postupu můžete nepřetržitě sledovat výkon vašeho webu, sledovat regrese a zajistit, aby každá změna kódu přispívala k lepšímu uživatelskému prožitku. Lighthouse CI není vázán na jednoho konkrétního poskytovatele cloudu a lze jej použít s různými nastaveními. Může například běžet uvnitř Docker kontejneru na službách jako Github Actions, Jenkins, CircleCI a mnoha dalších.
Proč používat Lighthouse CI?
Implementace Lighthouse CI nabízí řadu výhod:
- Včasné odhalení poklesu výkonu: Identifikujte výkonnostní problémy způsobené novými změnami kódu dříve, než se dostanou do produkce.
- Zlepšení výkonu webu: Získejte praktické poznatky o tom, jak optimalizovat váš web pro rychlost, přístupnost a SEO.
- Vylepšený uživatelský prožitek: Poskytujte rychlejší a uživatelsky přívětivější web, který udrží návštěvníky zaujaté.
- Snížení míry okamžitého opuštění (Bounce Rate): Optimalizujte dobu načítání, abyste snížili frustraci uživatelů a zabránili jim v opuštění vašeho webu.
- Zvýšení konverzních poměrů: Rychlejší web obvykle vede k vyšším konverzním poměrům a lepším obchodním výsledkům.
- Automatizované testování výkonu: Integrujte testování výkonu do vašeho CI/CD pipeline pro nepřetržité sledování.
- Rozhodování založené na datech: Zakládejte své optimalizační snahy na konkrétních výkonnostních metrikách a poznatcích.
- Dlouhodobé sledování výkonu: Sledujte výkon vašeho webu v průběhu času, abyste identifikovali trendy a měřili dopad vašich optimalizací.
Klíčové vlastnosti Lighthouse CI
- Automatizované audity: Spouští audity Lighthouse automaticky jako součást vašeho CI/CD procesu.
- Výkonnostní rozpočty: Nastavte výkonnostní rozpočty, abyste zajistili, že váš web zůstane v přijatelných mezích výkonu.
- Sledování regresí: Sleduje poklesy výkonu v průběhu času, což vám umožňuje identifikovat změny kódu, které je způsobily.
- Praktické poznatky: Poskytuje podrobné zprávy s praktickými doporučeními, jak zlepšit výkon vašeho webu.
- Přizpůsobitelná konfigurace: Nakonfigurujte Lighthouse CI tak, aby vyhovoval vašim specifickým potřebám a požadavkům.
- Integrace s nástroji CI/CD: Bez problémů se integruje s populárními nástroji CI/CD, jako jsou Jenkins, CircleCI, GitHub Actions a GitLab CI.
- Open Source: Lighthouse CI je open-source projekt, což znamená, že je zdarma k použití a úpravám.
Nastavení Lighthouse CI: Průvodce krok za krokem
Zde je komplexní průvodce nastavením Lighthouse CI pro váš projekt:
1. Instalace Lighthouse CI CLI
Nejprve musíte globálně nainstalovat rozhraní příkazového řádku (CLI) Lighthouse CI pomocí npm nebo yarnu:
npm install -g @lhci/cli
yarn global add @lhci/cli
2. Konfigurace Lighthouse CI
Vytvořte soubor lighthouserc.js
v kořenovém adresáři vašeho projektu pro konfiguraci Lighthouse CI. Tento soubor definuje URL adresy k auditování, pravidla pro ověření (assertions) a další konfigurační možnosti.
Zde je základní příklad souboru lighthouserc.js
:
module.exports = {
ci:
{
collect: {
url: ['http://localhost:3000', 'http://localhost:3000/about']
},
assert: {
preset: 'lighthouse:recommended'
},
upload: {
target: 'temporary-public-storage'
},
},
};
Vysvětlení:
collect.url
: Specifikuje URL adresy, které má Lighthouse auditovat. V tomto příkladu auditujeme domovskou stránku a stránku "o nás" webu běžícího nalocalhost:3000
. Nezapomeňte to nahradit URL adresami relevantními pro *váš* projekt, což může zahrnovat i testovací (staging) prostředí.assert.preset
: Používá přednastavenílighthouse:recommended
, které aplikuje sadu předdefinovaných ověření založených na doporučeních Lighthouse. Je to dobrý výchozí bod, ale tato ověření si můžete podle potřeby přizpůsobit.upload.target
: Konfiguruje, kam se budou nahrávat výsledky Lighthouse CI.temporary-public-storage
je užitečné pro testování a vývoj, ale pro produkční prostředí budete typicky chtít použít trvalejší řešení úložiště (o tom později).
3. Integrace Lighthouse CI do vašeho CI/CD pipeline
Dalším krokem je integrace Lighthouse CI do vaší CI/CD pipeline. Přesné kroky se budou lišit v závislosti na vašem poskytovateli CI/CD, ale obecný proces zahrnuje přidání skriptu do vaší CI/CD konfigurace, který spouští příkazy Lighthouse CI.
Příklad s použitím GitHub Actions:
Vytvořte soubor s názvem .github/workflows/lighthouse-ci.yml
ve vašem repozitáři s následujícím obsahem:
name: Lighthouse CI
on:
push:
branches: [main]
pull_request:
jobs:
lighthouse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Install dependencies
run: npm ci
- name: Run Lighthouse CI
run: |
npm install -g @lhci/cli@0.11.x
lhci autorun
Vysvětlení:
on.push.branches
: Spustí workflow při pushi do větvemain
.on.pull_request
: Spustí workflow při pull requestech.jobs.lighthouse.runs-on
: Specifikuje operační systém, který se má pro úlohu použít (v tomto případě Ubuntu).steps
: Definuje kroky, které se mají v úloze provést:actions/checkout@v3
: Načte repozitář.actions/setup-node@v3
: Nastaví Node.js.npm ci
: Nainstaluje závislosti.Run Lighthouse CI
: Spustí příkazy Lighthouse CI:npm install -g @lhci/cli@0.11.x
: Nainstaluje Lighthouse CI CLI globálně. *Důležité*: Vždy se doporučuje zamknout konkrétní verzi.lhci autorun
: Spustí Lighthouse CI v režimu "autorun", který automaticky shromažďuje audity, ověřuje výkonnostní rozpočty a nahrává výsledky.
Důležité úvahy pro integraci CI/CD:
- Spuštění serveru: Před spuštěním
lhci autorun
se ujistěte, že váš webový server běží (např.npm start
). Možná budete muset do své CI/CD konfigurace přidat krok pro spuštění serveru na pozadí. - Migrace databáze: Pokud vaše aplikace závisí na databázi, ujistěte se, že migrace databáze jsou spuštěny jako součást vašeho CI/CD procesu *před* spuštěním Lighthouse CI.
- Proměnné prostředí: Pokud vaše aplikace vyžaduje proměnné prostředí, ujistěte se, že jsou správně nakonfigurovány ve vašem CI/CD prostředí.
4. Spuštění Lighthouse CI
Nyní, kdykoli provedete push změn do větve main
nebo vytvoříte pull request, workflow Lighthouse CI se automaticky spustí. Výsledky budou k dispozici v rozhraní GitHub Actions.
5. Zobrazení výsledků Lighthouse CI
Výsledky Lighthouse CI budou nahrány na místo určené ve vašem souboru lighthouserc.js
(např. temporary-public-storage
). K těmto výsledkům se dostanete kliknutím na odkaz poskytnutý ve výstupu CI/CD. Tyto výsledky poskytují podrobné informace o výkonu, přístupnosti, SEO a osvědčených postupech vašeho webu.
Konfigurace ověření (Assertions) a výkonnostních rozpočtů
Lighthouse CI umožňuje konfigurovat ověření a výkonnostní rozpočty, abyste zajistili, že váš web splňuje vaše výkonnostní cíle. Ověření (assertions) jsou pravidla, která kontrolují specifické výkonnostní metriky (např. First Contentful Paint, Largest Contentful Paint) oproti předdefinovaným prahovým hodnotám. Výkonnostní rozpočty definují přijatelné limity pro různé výkonnostní metriky.
Zde je příklad, jak nakonfigurovat ověření ve vašem souboru lighthouserc.js
:
module.exports = {
ci: {
collect: {
url: ['http://localhost:3000']
},
assert: {
assertions: {
'first-contentful-paint': ['warn', { maxNumericValue: 2000 }],
'largest-contentful-paint': ['warn', { maxNumericValue: 2500 }],
'cumulative-layout-shift': ['warn', { maxNumericValue: 0.1 }],
'total-blocking-time': ['warn', { maxNumericValue: 500 }],
'categories:performance': ['warn', { minScore: 0.9 }],
'categories:accessibility': ['error', { minScore: 0.8 }],
}
},
upload: {
target: 'temporary-public-storage'
},
}
};
Vysvětlení:
first-contentful-paint
: Nastaví varovný práh pro First Contentful Paint (FCP) na 2000 ms.largest-contentful-paint
: Nastaví varovný práh pro Largest Contentful Paint (LCP) na 2500 ms.cumulative-layout-shift
: Nastaví varovný práh pro Cumulative Layout Shift (CLS) na 0.1.total-blocking-time
: Nastaví varovný práh pro Total Blocking Time (TBT) na 500 ms.categories:performance
: Nastaví varovný práh pro celkové skóre kategorie Performance na 0.9.categories:accessibility
: Nastaví chybový práh pro celkové skóre kategorie Accessibility na 0.8.
Úrovně ověření:
off
: Vypne ověření.warn
: Zobrazí varování, pokud ověření selže.error
: Způsobí selhání běhu Lighthouse CI, pokud ověření selže.
Přizpůsobení ověření:
Ověření si můžete přizpůsobit tak, aby vyhovovala vašim specifickým potřebám. Můžete například nastavit přísnější prahové hodnoty pro kritické výkonnostní metriky nebo vypnout ověření, která pro vaši aplikaci nejsou relevantní.
Výběr cíle pro nahrávání výsledků Lighthouse CI
Možnost upload.target
ve vašem souboru lighthouserc.js
specifikuje, kam se budou nahrávat výsledky Lighthouse CI. Cíl temporary-public-storage
je vhodný pro testování a vývoj, ale není vhodný pro produkční prostředí, protože data nejsou trvalá.
Zde jsou některé alternativní cíle pro nahrávání:
- Lighthouse CI Server: Doporučeným přístupem pro produkční prostředí je použití Lighthouse CI serveru. Lighthouse CI server poskytuje trvalé řešení pro ukládání vašich výsledků Lighthouse CI, stejně jako uživatelské rozhraní pro jejich prohlížení a analýzu. Může být nasazen na různých cloudových poskytovatelích nebo hostován na vaší vlastní infrastruktuře.
- Google Cloud Storage: Své výsledky Lighthouse CI můžete nahrávat do Google Cloud Storage bucketu. Jedná se o nákladově efektivní a škálovatelné řešení pro ukládání vašich dat.
- Amazon S3: Podobně jako u Google Cloud Storage můžete své výsledky Lighthouse CI nahrávat do Amazon S3 bucketu.
Nastavení Lighthouse CI Serveru:
Nastavení Lighthouse CI serveru zahrnuje následující kroky:
- Instalace Lighthouse CI Serveru: Lighthouse CI server můžete nainstalovat pomocí npm nebo yarnu:
- Konfigurace databáze: Lighthouse CI server vyžaduje databázi pro ukládání svých dat. Můžete použít různé databáze, včetně PostgreSQL, MySQL a SQLite. Nakonfigurujte nastavení připojení k databázi v souboru
.env
. - Spuštění Lighthouse CI Serveru: Spusťte Lighthouse CI server pomocí příkazu
lhci server
. - Konfigurace Lighthouse CI CLI pro použití serveru: Aktualizujte váš soubor
lighthouserc.js
tak, aby jako cíl pro nahrávání používal Lighthouse CI server:
npm install -g @lhci/server
yarn global add @lhci/server
module.exports = {
ci: {
collect: {
url: ['http://localhost:3000']
},
assert: {
preset: 'lighthouse:recommended'
},
upload: {
target: 'lhci',
serverBaseUrl: 'http://your-lhci-server.com',
token: 'YOUR_LHCI_TOKEN'
},
}
};
Nahraďte http://your-lhci-server.com
URL adresou vašeho Lighthouse CI serveru a YOUR_LHCI_TOKEN
přístupovým tokenem pro váš projekt.
Osvědčené postupy pro používání Lighthouse CI
Chcete-li z Lighthouse CI vytěžit maximum, dodržujte tyto osvědčené postupy:
- Spouštějte Lighthouse CI při každé změně kódu: Integrujte Lighthouse CI do vašeho CI/CD pipeline, aby se audity spouštěly při každé změně kódu. To vám pomůže včas odhalit poklesy výkonu.
- Nastavte výkonnostní rozpočty: Definujte výkonnostní rozpočty, abyste zajistili, že váš web zůstane v přijatelných mezích výkonu.
- Sledujte trendy výkonu: Sledujte výkon vašeho webu v průběhu času, abyste identifikovali trendy a měřili dopad vašich optimalizací.
- Prioritizujte optimalizační snahy: Zaměřte se nejprve na optimalizaci nejkritičtějších výkonnostních metrik.
- Používejte reálná data: Používejte data z reálného světa pro informování vašich optimalizačních snah. Například můžete použít Google Analytics k identifikaci stránek, které jsou vašimi uživateli nejčastěji navštěvovány.
- Testujte na reálných zařízeních: Testujte svůj web na reálných zařízeních, abyste se ujistili, že funguje dobře v reálných podmínkách.
- Pravidelně kontrolujte výsledky Lighthouse CI: Ujistěte se, že pravidelně kontrolujete výsledky Lighthouse CI a podnikáte kroky k řešení všech identifikovaných výkonnostních problémů.
- Optimalizujte obrázky: Optimalizujte své obrázky, abyste zmenšili jejich velikost souboru bez ztráty kvality. Nástroje jako ImageOptim (macOS), TinyPNG a ImageKit jsou pro to užitečné.
- Minifikujte CSS a JavaScript: Minifikujte své CSS a JavaScriptové soubory, abyste zmenšili jejich velikost. Nástroje jako UglifyJS a CSSNano s tím mohou pomoci.
- Využívejte ukládání do mezipaměti prohlížeče (Browser Caching): Využívejte ukládání do mezipaměti prohlížeče ke snížení počtu požadavků, které váš web zasílá na server.
- Používejte síť pro doručování obsahu (CDN): Používejte CDN k distribuci obsahu vašeho webu na servery po celém světě. To může zlepšit dobu načítání pro uživatele v různých geografických lokalitách. Služby jako Cloudflare a Amazon CloudFront jsou populární CDN.
- Odložte načítání obrázků mimo obrazovku: Implementujte líné načítání (lazy loading) pro obrázky, které nejsou okamžitě viditelné na obrazovce. To může výrazně zlepšit počáteční dobu načítání stránky. Atribut
loading="lazy"
lze použít pro jednoduché líné načítání. - Eliminujte zdroje blokující vykreslování: Identifikujte a eliminujte zdroje, které blokují vykreslování vaší stránky. To často zahrnuje vkládání kritického CSS přímo do HTML a odkládání nekritického CSS a JavaScriptu.
- Snižte dobu provádění JavaScriptu: Profilujte svůj JavaScriptový kód, abyste identifikovali a optimalizovali pomalu běžící funkce. Techniky jako code splitting a tree shaking mohou pomoci snížit množství JavaScriptu, které je třeba stáhnout a spustit.
Pokročilé techniky Lighthouse CI
Jakmile se seznámíte se základy Lighthouse CI, můžete prozkoumat některé pokročilé techniky k dalšímu vylepšení sledování výkonu:
- Vlastní audity Lighthouse: Můžete vytvářet vlastní audity Lighthouse pro testování specifických výkonnostních problémů, které jsou relevantní pro vaši aplikaci.
- Konfigurace Headless Chrome: Nakonfigurujte Headless Chrome pro použití specifických emulací zařízení nebo nastavení omezení sítě (throttling).
- Integrace s monitorovacími nástroji: Integrujte Lighthouse CI s vašimi stávajícími monitorovacími nástroji (např. New Relic, Datadog), abyste získali komplexnější pohled na výkon vašeho webu.
- Vizuální regresní testování: Kombinujte Lighthouse CI s nástroji pro vizuální regresní testování, abyste odhalili vizuální změny, které mohou ovlivnit výkon.
Lighthouse CI pro globální publikum: Co zvážit u mezinárodních webů
Při používání Lighthouse CI pro weby cílící na globální publikum zvažte následující:
- Testujte z více lokalit: Doba odezvy serveru se může výrazně lišit v závislosti na poloze uživatele. Používejte CDN (Content Delivery Network) a zvažte spouštění auditů Lighthouse CI z různých geografických regionů, abyste získali přesnější obraz o výkonu pro vaše mezinárodní uživatele. Někteří poskytovatelé CI/CD nabízejí možnosti specifikovat geografickou polohu runneru.
- Zohledněte podmínky sítě: Rychlost a latence sítě se po celém světě značně liší. Simulujte různé podmínky sítě během vašich auditů Lighthouse CI, abyste pochopili, jak váš web funguje za různých omezení. Lighthouse umožňuje omezit síťové připojení a simulovat tak pomalejší připojení, jako je 3G.
- Lokalizace obsahu: Ujistěte se, že váš lokalizovaný obsah je správně optimalizován. To zahrnuje optimalizaci obrázků pro různé jazyky a znakové sady a správné kódování, aby se předešlo problémům se zobrazením.
- Načítání písem: Optimalizujte načítání písem pro různé jazyky. Zvažte použití `font-display: swap`, abyste zabránili neviditelnosti textu během načítání písma.
- Skripty třetích stran: Mějte na paměti skripty třetích stran, protože mohou výrazně ovlivnit výkon, zejména pro uživatele v regionech s pomalejším síťovým připojením. Pravidelně auditujte výkon skriptů třetích stran a zvažte použití asynchronního načítání nebo samohostování kritických skriptů.
- Optimalizace pro mobilní zařízení: Používání mobilních zařízení je v mnoha částech světa převládající. Ujistěte se, že váš web je optimalizován pro mobilní zařízení a že vaše audity Lighthouse CI zahrnují testy specifické pro mobilní zařízení.
Řešení běžných problémů s Lighthouse CI
Zde jsou některé běžné problémy, na které můžete narazit při používání Lighthouse CI, a jak je řešit:
- Lighthouse CI selhává s chybou "Timeout": To se může stát, pokud se váš web načítá příliš dlouho nebo pokud se Lighthouse CI nemůže připojit k vašemu webu. Zkuste zvýšit hodnotu timeoutu ve vašem souboru
lighthouserc.js
nebo zkontrolujte logy vašeho serveru na chyby. - Lighthouse CI hlásí nekonzistentní výsledky: Výsledky Lighthouse se mohou mezi jednotlivými běhy mírně lišit kvůli podmínkám sítě nebo jiným faktorům. Spusťte více auditů, abyste získali stabilnější průměr.
- Lighthouse CI selhává při nahrávání výsledků: Zkontrolujte konfiguraci
upload.target
a ujistěte se, že váš Lighthouse CI server běží a je dostupný. Také ověřte, že máte nakonfigurovaný správný přístupový token. - Lighthouse CI hlásí neočekávané poklesy výkonu: Prozkoumejte změny kódu, které byly provedeny předtím, než byla regrese detekována. Použijte zprávy Lighthouse CI k identifikaci specifických výkonnostních metrik, které se zhoršily, a zaměřte své optimalizační snahy na tyto oblasti.
Závěr
Frontend Lighthouse CI je mocný nástroj pro nepřetržité sledování výkonu webových aplikací. Integrací Lighthouse CI do vašeho CI/CD pipeline můžete proaktivně identifikovat a řešit výkonnostní problémy, a zajistit tak, že váš web poskytuje optimální uživatelský prožitek. Nezapomeňte přizpůsobit své nastavení, pravidla pro ověření a testovací lokality pro globální publikum, abyste vytvořili co nejlepší zážitek pro uživatele po celém světě.
Dodržováním kroků a osvědčených postupů uvedených v tomto průvodci můžete výrazně zlepšit výkon vašeho webu, snížit míru okamžitého opuštění, zvýšit konverzní poměry a v konečném důsledku dosáhnout vašich obchodních cílů. Začněte implementovat Lighthouse CI ještě dnes a odemkněte plný potenciál vašich webových aplikací.