מדריך למעבר אל Lighthouse גרסה 3

המדריך הזה מיועד למשתמשי Lighthouse גרסה 2:

  • מריצים את Lighthouse מ-Node או משורת הפקודה.
  • להסתמך על פלט ה-JSON של Lighthouse.

אם השיטות האלה לא רלוונטיות לכם, תהליך העבודה להפעלת Lighthouse כמעט זהה. סקירה כללית של התכונות והשינויים החדשים זמינה במאמר הודעה על Lighthouse 3.0.

שינויים בהפעלה

מערכת Lighthouse מחשבת עכשיו סימולציות של ביצועים כברירת מחדל, והגדרות ויסות הנתונים השתנו באופן משמעותי.

דגלים ב-CLI

תרחיש דגלים של v2 דגלים לגרסה 3
ויסות נתונים (throttle) של כלי פיתוח 3G ללא (התנהגות ברירת המחדל) --throttling-method=devtools
ללא ויסות נתונים (throttle) --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 תוצאות הבדיקות. קיצור של "Lighthouse Results" (תוצאות של מגדלור). זה היה למעשה האובייקט ברמה העליונה בגרסה 2, אבל גרסה 3 כוללת גם שינויי תוכנה שעלולים לגרום לכשלים בצורה של האובייקט הזה. פרטים נוספים מופיעים בקטע שינויים באובייקט התוצאות.
  • artifacts. הנתונים שנאספו מ-Chrome במהלך הביקורת. בעבר, הנתונים האלה היו מעורבבים עם המאפיינים של LHR.
  • report הפורמט של הדוח בפורמט HTML/JSON/CSV הוא מחרוזת.

שינויים באובייקט התוצאות

כפי שצוין בקטע פורמט חדש ברמה העליונה בפלט JSON, תוצאות הביקורות לא זמינות דרך המאפיין lhr. בגרסה 2, התוכן של האובייקט הזה היה בעיקרון פלט ה-JSON ברמה העליונה. עם זאת, הצורה של האובייקט הזה השתנתה בגרסה 3. הטבלה שבהמשך מפרטת את כל השינויים.

  • אם בשורה יש ערך גם בעמודה v2 וגם בעמודה v3, המשמעות היא שצריך להחליף כל הפניה לנכס v2 בקוד שלכם בערך שמקביל ל-v3.
  • אם בשורה מסוימת אין ערך בעמודה v3, העמודה Notes מתארת את האפשרויות שלכם.
  • חשוב לזכור שפריטים כמו ID מייצגים טקסט של placeholder.
נכס v2 שווה ערך לגרסה 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 כשהערך של 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.