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

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

  • يمكنك تشغيل Lighthouse من عقدة أو من سطر الأوامر.
  • اعتمِد على ناتج 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 الذي يعرضه Lighthouse v3 على 3 خصائص من المستوى الأعلى:

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

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

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

  • إذا كان أحد الصفوف يحتوي على قيمة في كلا العمودين v2 وv3، يعني ذلك يجب عليك استبدال أي إشارة إلى السمة v2 في رمزك بالعنصر المكافئ له إلى الإصدار v3.
  • عندما لا يحتوي أحد الصفوف على قيمة في العمود 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 كبديل.