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

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

  • يمكنك تشغيل 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، تقبل وحدة Node خيارات الضبط نفسها التي تتيحها واجهة برمجة التطبيقات. هذا تغيير جذري بمعنى أنّه تم تجاهل العديد من هذه الخيارات في الإصدار 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 بدلاً من ذلك.