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

המדריך הזה מיועד למשתמשי Lighthouse v2 שעומדים בתנאים הבאים:

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

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

שינויי הפעלה

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

דגלים ל-CLI

תרחיש דגלי גרסה 2 דגלי גרסה 3
הגבלת רוחב פס של 3G בכלי פיתוח ללא (התנהגות ברירת המחדל) --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

מודול צומת

ב-Lighthouse v3, מודול הצומת מקבל את אותן אפשרויות תצורה כמו ב-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 שהגרסה 3 של Lighthouse מכיל עכשיו שלושה מאפיינים ברמה העליונה:

  • lhr. תוצאות הביקורות. סרטון קצר בנושא "Lighthouse Results" (תוצאות Lighthouse). זה היה בעיקרון האובייקט ברמה העליונה בגרסה 2, אבל v3 גם כולל שינויי צורה שגויים של האובייקט הזה. ראו שינויים באובייקט התוצאות.
  • artifacts. הנתונים שנאספים מ-Chrome במהלך הביקורת. פעולה זו שילבה בעבר עם המאפיינים של ה-LHR.
  • report. הדוח בפורמט HTML/JSON/CSV כמחרוזת.

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

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

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