我使用Google Lighthouse作为节点模块,通过以下代码段以编程方式检索页面洞察报告:
let opts = {
chromeFlags: ['--headless'],
output: 'json'
};
let report = await chromeLauncher.launch({chromeFlags: opts.chromeFlags}).then(chrome => {
opts.port = chrome.port;
// Launch lighthouse, attached to the chrome instance we just launched
return lighthouse(target_url, opts).then(results => {
// Kill the chrome instance and return our results to the promise
return chrome.kill().then(() => results.report)
});
});
其中chromeLauncher
是chrome-launcher程序包的实例,而lighthouse
是lighthouse程序包的实例。
无论我设置为target_url
的网站是什么,我在report
中收到的JSON总是在同一点被截断,最后一个字符是反引号。
每次将输出设置为“ html”都会检索完整的,功能正常的HTML报告。
没有任何错误或异常发生。我已经阅读了官方存储库中的文档和示例,但是由于为什么我没有收到整个JSON报告而感到困惑。
编辑:我还应该注意,从全局命令行工具非编程方式使用灯塔工具不会出现问题-整个JSON报告都已传递到STDOUT。