Panduan Migrasi Lighthouse v3

Panduan ini ditujukan untuk pengguna Lighthouse v2 yang:

  • Jalankan Lighthouse dari Node atau command line.
  • Andalkan output JSON Lighthouse.

Jika hal ini tidak berlaku untuk Anda, alur kerja Anda untuk menjalankan Lighthouse sebagian besar sama. Lihat Mengumumkan Lighthouse 3.0 untuk ringkasan tentang fitur dan perubahan.

Perubahan pemanggilan

Lighthouse sekarang menghitung simulasi kinerja secara {i>default<i} dan pengaturan throttling sangat ubah.

Tanda CLI

Skenario Tanda v2 Tanda v3
Throttling 3G DevTools Tidak ada (perilaku default) --throttling-method=devtools
Tanpa Throttling --disable-network-throttling --disable-cpu-throttling --throttling-method=provided
Throttling Jaringan, Tanpa Throttling CPU --disable-cpu-throttling --throttling-method=devtools --throttling.cpuSlowdownMultiplier=1
Menjalankan Audit Performa --perf --preset=perf
Jalankan Audit Konten Campuran --mixed-content --preset=mixed-content

Modul Node

Di Lighthouse v3, modul Node menerima opsi konfigurasi yang sama dengan CLI. Ini adalah perubahan yang dapat menyebabkan gangguan karena banyak dari opsi ini diabaikan di v2, sedangkan sekarang opsi tersebut akan benar-benar mempengaruhi bagaimana Lighthouse berjalan.

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);
}

Perubahan output

Format tingkat atas yang baru dalam output JSON

Objek JSON yang ditampilkan Lighthouse v3 sekarang berisi 3 properti tingkat atas:

  • lhr. Hasil audit. Singkatan dari "Hasil Lighthouse". Ini pada dasarnya adalah objek level teratas di v2, tetapi v3 juga memperkenalkan perubahan yang dapat menyebabkan gangguan pada bentuk objek ini. Lihat Perubahan pada objek hasil.
  • artifacts. Data yang dikumpulkan dari Chrome saat mengaudit. Sebelumnya digabungkan dengan properti LHR.
  • report. HTML/JSON/CSV laporan berformat sebagai string.

Perubahan pada objek hasil

Seperti yang disebutkan dalam Format baru tingkat teratas dalam output JSON, hasil audit kini tersedia melalui properti lhr. Di v2, konten objek ini pada dasarnya adalah output JSON tingkat teratas. Namun, bentuk objek ini sendiri telah berubah di v3. Tabel di bawah mencantumkan semua perubahan.

  • Jika baris memiliki nilai di kolom v2 dan v3, artinya Anda harus mengganti referensi apa pun ke properti v2 dalam kode Anda dengan yang setara dengan v3.
  • Jika baris tidak memiliki nilai di kolom v3, kolom Notes akan menjelaskan opsi Anda.
  • Perhatikan bahwa item seperti ID mewakili teks placeholder.
Properti v2 Setara v3 Catatan
initialUrl requestedUrl
url finalUrl
generatedTime fetchedTime
reportCategories categories Diubah dari array menjadi objek dengan kunci.
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 Kemungkinan nilai telah diperluas menjadi numeric|binary|manual|informative|not-applicable|error.
audits.ID.score audits.ID.score Skor selalu berupa angka antara 0 dan 1 (bukan 0-100) saat scoreDisplayMode numerik atau biner. Skor selalu null untuk mode tampilan lainnya karena tidak ada gagasan lulus/gagal.
audits.ID.displayValue audits.ID.displayValue Kini dapat berupa array argumen gaya printf untuk interpolasi string.
audits.ID.debugString audits.ID.explanation audits.ID.errorMessage audits.ID.warnings Nilai debugString telah dikonversi menjadi salah satu dari tiga properti di atas bergantung pada maksud mereka.
audits.ID.details audits.ID.details Struktur detail telah diubah menjadi lebih mudah dipahami. Setiap entri di .items adalah objek dengan kunci yang andal, bukan 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 Dihapus. Sebagai gantinya, gunakan details.