دليل نقل بيانات الإصدار 3 من Lighthouse

هذا الدليل مخصَّص لمستخدمي الإصدار 2 من Lighthouse الذين:

  • يمكنك تشغيل Lighthouse من Node أو سطر الأوامر.
  • اعتمِد على ناتج JSON من Lighthouse.

إذا لم ينطبق أي من الشروط عليك، يعني ذلك أنّ طريقة عملك في تشغيل Lighthouse هي نفسها تقريبًا. اطّلِع على إعلان عن Lighthouse 3.0 للحصول على نظرة عامة على الميزات والتغييرات الجديدة.

التغييرات في الاستدعاءات

تحسب أداة Lighthouse الآن الأداء المحاكى تلقائيًا، وتم تغيير إعدادات التقييد بشكل كبير.

علامات واجهة سطر الأوامر

السيناريو علامات الإصدار 2 أعلام الإصدار 3
تقييد شبكات الجيل الثالث في أدوات مطوّري البرامج لا شيء (السلوك التلقائي) --throttling-method=devtools
بدون تقييد --disable-network-throttling --disable-cpu-throttling --throttling-method=provided
ضبط الحد الأقصى المسموح به لعرض نطاق الشبكة، بدون تقييد وحدة المعالجة المركزية --disable-cpu-throttling --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1
إجراء عمليات تدقيق الأداء --perf --preset=perf
إجراء عمليات تدقيق للمحتوى المختلط --mixed-content --preset=mixed-content

وحدة العقدة

في الإصدار 3 من Lighthouse، تقبل وحدة العُقدة خيارات الضبط نفسها مثل واجهة سطر الأوامر. يُعدّ هذا التغيير سببًا مهمًا، إذ تم تجاهل العديد من هذه الخيارات في الإصدار 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 الذي يعرضه الإصدار 3 من Lighthouse الآن على ثلاث سمات من المستوى الأعلى:

  • lhr هي نتائج عمليات التدقيق. اختصار لـ "نتائج Lighthouse" كان هذا هو العنصر الأساسي من المستوى الأعلى في الإصدار 2، ولكنّ الإصدار 3 يقدّم تغييرات جذرية على شكل هذا العنصر أيضًا. يمكنك الاطّلاع على التغييرات على كائن النتائج.
  • artifacts. البيانات التي يتم جمعها من Chrome أثناء التدقيق وقد اختلف هذا الأمر سابقًا مع خصائص LHR.
  • report التقرير المنسَّق بتنسيق HTML/JSON/CSV كسلسلة.

التغييرات على عنصر النتائج

كما ورد في تنسيق المستوى الأعلى الجديد في إخراج JSON، لا تتوفّر نتائج عمليات التدقيق من خلال السمة lhr. في الإصدار 2، كانت محتويات هذا الكائن هي في الأساس ناتج JSON من المستوى الأعلى. ومع ذلك، تغيّر شكل هذا العنصر نفسه في الإصدار 3. يسرد الجدول أدناه جميع التغييرات.

  • إذا اشتمل أحد الصفوف على قيمة في كلا العمودين v2 وv3، هذا يعني أنّه يجب استبدال أي مرجع إلى السمة v2 في الرمز بالرمز المكافئ لـ v3.
  • عندما لا يحتوي الصف على قيمة في عمود v3، يوضّح عمود الملاحظات خياراتك.
  • تجدر الإشارة إلى أنّ العناصر مثل ID تمثّل نص العنصر النائب.
موقع الإصدار 2 الإصدار 3 - مكافئ ملاحظات
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 تكون النتائج دائمًا عبارة عن رقم بين 0 و1 (وليس 0-100) عندما تكون قيمة scoreDisplayMode هي رقمية أو ثنائية. تكون الدرجات دائمًا 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 كبديل.