راهنمای مهاجرت Lighthouse v3

این راهنما برای کاربران Lighthouse v2 است که:

  • Lighthouse را از Node یا خط فرمان اجرا کنید.
  • به خروجی JSON Lighthouse تکیه کنید.

اگر این موارد در مورد شما صدق نمی کند، گردش کار شما برای اجرای Lighthouse عمدتاً یکسان است. برای مروری بر ویژگی‌ها و تغییرات جدید، به Announcing Lighthouse 3.0 مراجعه کنید.

فراخوان تغییر می کند

اکنون Lighthouse عملکرد شبیه سازی شده را به طور پیش فرض محاسبه می کند و تنظیمات throttling به شدت تغییر کرده است.

پرچم های CLI

سناریو v2 Flags v3 Flags
DevTools 3G Throttling هیچ (رفتار پیش فرض) --throttling-method=devtools
بدون گلوگاه --disable-network-throttling --disable-cpu-throttling --throttling-method=provided
تروتتل شبکه، بدون درنگ CPU --disable-cpu-throttling --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1
حسابرسی عملکرد را اجرا کنید --perf --preset=perf
ممیزی محتوای ترکیبی را اجرا کنید --mixed-content --preset=mixed-content

ماژول گره

در Lighthouse v3، ماژول Node همان گزینه های پیکربندی CLI را می پذیرد. این یک تغییر اساسی است به این معنا که بسیاری از این گزینه ها در نسخه 2 نادیده گرفته شدند، در حالی که اکنون آنها واقعاً بر نحوه اجرای Lighthouse تأثیر می گذارند.

const fs = require('fs');
const lighthouse = require('lighthouse');
async function run() {
  // `onlyCategories` was previously only available as a config setting.
  // `output` was previously only available in CLI.
  const flags = {onlyCategories: ['performance'], output: 'html'};
  const html = (await lighthouse('https://google.com/', flags)).report;
  fs.writeFileSync('report.html', html);
}

خروجی تغییر می کند

قالب جدید و سطح بالا در خروجی JSON

شی JSON که Lighthouse v3 برمی گرداند اکنون شامل سه ویژگی سطح بالا است:

  • lhr . نتایج ممیزی ها. مخفف «نتایج فانوس دریایی» این در اصل شیء سطح بالای نسخه 2 بود، اما v3 نیز تغییراتی را در شکل این شیء ایجاد می کند. تغییرات در شیء نتایج را ببینید.
  • artifacts . داده‌های جمع‌آوری‌شده از Chrome هنگام ممیزی. این قبلاً با خواص LHR آمیخته شده بود.
  • report . گزارش قالب بندی شده HTML/JSON/CSV به عنوان یک رشته.

تغییرات در نتایج شی

همانطور که در قالب جدید و سطح بالا در خروجی JSON ذکر شد، نتایج ممیزی از طریق ویژگی lhr در دسترس نیست. در نسخه 2، محتویات این شی در اصل خروجی JSON سطح بالا بود. با این حال، شکل خود این شی در v3 تغییر کرده است. جدول زیر تمام تغییرات را نشان می دهد.

  • اگر یک ردیف در هر دو ستون v2 و v3 دارای مقدار باشد، به این معنی است که باید هر ارجاعی به ویژگی v2 در کد خود را با معادل v3 جایگزین کنید.
  • هنگامی که یک ردیف در ستون v3 مقداری ندارد، ستون Notes گزینه های شما را توصیف می کند.
  • توجه داشته باشید که مواردی مانند ID نشان دهنده متن مکان نگهدار است.
v2 خاصیت v3-معادل یادداشت ها
initialUrl requestedUrl
url finalUrl
generatedTime fetchedTime
reportCategories categories از آرایه به یک شی کلیددار تغییر کرد.
reportGroups categoryGroups
audits. ID .name audits. ID .id
audits. ID .description audits. ID .title
audits. ID .helpText audits. ID .description
audits. ID .scoringMode audits. ID .scoreDisplayMode مقادیر ممکن به numeric|binary|manual|informative|not-applicable|error گسترش یافته است.
audits. ID .score audits. ID .score وقتی scoreDisplayMode عددی یا باینری است، نمرات همیشه عددی بین 0 تا 1 هستند (نه 0-100). امتیازها برای سایر حالت‌های نمایش همیشه null هستند، زیرا هیچ مفهومی از قبول/شکست وجود ندارد.
audits. ID .displayValue audits. ID .displayValue اکنون می توان آرایه ای از آرگومان های سبک printf برای درون یابی رشته ای باشد.
audits. ID .debugString audits. ID .explanation audits. ID .errorMessage audits. ID .warnings مقادیر debugString بسته به هدف آنها به یکی از سه ویژگی بالا تبدیل شده است.
audits. ID .details audits. ID .details ساختار جزئیات به سمت مصرفی تر شدن تغییر کرده است. هر ورودی در .items یک شی با کلیدهای قابل اعتماد به جای any[] است.
audits. ID .error audits. ID .scoreDisplayMode === 'error'
audits. ID .notApplicable audits. ID .scoreDisplayMode === 'not-applicable'
audits. ID .informative audits. ID .scoreDisplayMode === 'informative'
audits. ID .manual audits. ID .scoreDisplayMode === 'manual'
audits. ID .extendedInfo حذف شد. به جای آن از details استفاده کنید.