首页 > 解决方案 > Node Lighthouse 没有返回类似的可访问性结果

问题描述

不确定我是否做错了什么或缺少配置设置,但是当我在 Chrome 扩展程序中运行 LH 时,我的页面收到 94,但是当我在节点 LH 中运行同一页面时,我得到 88。我想出了运行它作为台式机与移动设备,但我不确定我还缺少什么来获得相同或更相似的分数。

我当前的代码

const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
    const options = {logLevel: 'info', output: 'html', onlyCategories: ['accessibility'], port: chrome.port};
    // emulatedFormFactor:'desktop'
    const config = { extends: 'lighthouse:default', settings: {formFactor: 'desktop', screenEmulation:{mobile:false}} }
    const runnerResult = await lighthouse(, options, config);

我预计两者之间会略有不同,但我认为 6 分有点戏剧性。我注意到两者之间的油门速度不同,但不确定如何更改设置或配置。

右图为 Chrome 浏览器,左图为节点保存页面

右图为 Chrome 浏览器,左图为节点保存页面

标签: javascriptnode.jslighthouse

解决方案


经过大量的谷歌搜索后,我终于找到了让我的 Node Lighthouse 使用与 Chrome 扩展版本相同的参数的答案。

这是最终代码:

const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
    const flags = {logLevel: 'info', output: 'html', onlyCategories: ['accessibility'], port: chrome.port};
    const config = {
        extends: 'lighthouse:default',
        settings: {
          formFactor: 'desktop',
          throttling: {
            rttMs: 40,
            throughputKbps: 10240,
            cpuSlowdownMultiplier: 1,
            requestLatencyMs: 0,
            downloadThroughputKbps: 0,
            uploadThroughputKbps: 0
          },
          screenEmulation: {
            mobile: false,
            width: 1350,
            height: 940,
            deviceScaleFactor: 1,
            disabled: false
          },
          emulatedUserAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4143.7 Safari/537.36 Chrome-Lighthouse'
        }
      }
    const runnerResult = await lighthouse('https://yourawesomesite.com', flags, config);

希望这可以帮助其他人自动化他们的 Lighthouse 测试。


推荐阅读