Skip to content

Commit 15ce11d

Browse files
committed
dont use puppeteer?
1 parent 6dab309 commit 15ce11d

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

src/run-lighthouse.js

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,44 @@
1-
import puppeteer from 'puppeteer';
21
import lighthouse from 'lighthouse';
2+
import chromeLauncher from 'chrome-launcher';
33
import log from 'lighthouse-logger';
44

5-
65
export const runLighthouse = async (url, settings) => {
76
let chrome;
87
try {
9-
const logLevel = 'error';
8+
const logLevel = settings?.logLevel || 'error';
109
log.setLevel(logLevel);
11-
chrome = await puppeteer.launch({
12-
args: [
10+
11+
// Launch Chrome using chrome-launcher
12+
chrome = await chromeLauncher.launch({
13+
chromeFlags: [
1314
'--headless=new',
1415
'--no-sandbox',
1516
'--disable-gpu',
1617
'--disable-dev-shm-usage',
17-
'--remote-debugging-port=0',
1818
'--disable-software-rasterizer',
1919
'--disable-setuid-sandbox',
2020
'--no-zygote',
2121
],
2222
logLevel,
23-
ignoreDefaultArgs: ['--disable-extensions'],
23+
handleSIGINT: true,
2424
});
2525

26-
// Get the debugging port from the browser's websocket endpoint
27-
const browserWSEndpoint = chrome.wsEndpoint();
28-
const port = parseInt(browserWSEndpoint.split(':')[2].split('/')[0], 10);
29-
3026
const results = await lighthouse(
3127
url,
3228
{
33-
port,
29+
port: chrome.port,
3430
output: 'html',
3531
logLevel,
32+
onlyCategories: settings?.onlyCategories,
33+
locale: settings?.locale || 'en-US',
34+
formFactor: settings?.preset === 'desktop' ? 'desktop' : 'mobile',
3635
},
3736
settings,
3837
);
3938
return results;
4039
} finally {
4140
if (chrome) {
42-
await chrome.close();
41+
await chrome.kill();
4342
}
4443
}
4544
};

0 commit comments

Comments
 (0)