دليل نقل بيانات الإصدار 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
تقييد الشبكة، عدم تقييد وحدة المعالجة المركزية (CPU) --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 الآن على 3 خصائص من المستوى الأعلى:

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

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

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

  • إذا كان أحد الصفوف يحتوي على قيمة في العمودَين v2 وv3، هذا يعني أنّه عليك استبدال أي مرجع للسمة v2 في الرمز البرمجي بما يعادل v3.
  • في حال عدم توفّر قيمة لأحد الصفوف في العمود v3، سيوضّح عمود الملاحظات الخيارات المتاحة لك.
  • ملاحظة: تمثّل العناصر، مثل ID، نص عنصر نائب.
الإصدار 2 من الموقع الإصدار 3 مكافئ Notes
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 كبديل.