pagespeed-quest
Version:
A framework for efficient web front-end speed improvement
29 lines • 2.85 kB
JavaScript
import Path from 'path';
export async function execLighthouse(opts, dependency) {
const artifactsDir = opts.artifactsDir || './artifacts';
await dependency.mkdirp(artifactsDir);
const deviceType = opts.deviceType || 'mobile';
const outputPath = Path.join(artifactsDir, 'lighthouse');
const args = [
opts.url,
'--save-assets',
'--output=html,json',
`--output-path=${outputPath}`,
'--only-categories=performance',
`--form-factor=${deviceType}`,
];
if (opts.noThrottling) {
args.push('--throttling.rttMs=0', '--throttling.throughputKbps=0', '--throttling.downloadThroughputKbps=0', '--throttling.uploadThroughputKbps=0', '--throttling.cpuSlowdownMultiplier=1');
}
else if (opts.cpuMultiplier)
args.push(`--throttling.cpuSlowdownMultiplier=${opts.cpuMultiplier}`);
args.push(`--max-wait-for-load=${opts.timeout}`);
const chromeFlags = ['--ignore-certificate-errors', `--proxy-server=http://localhost:${opts.proxyPort}`];
if (opts.headless)
chromeFlags.push('--headless');
args.push(`--chrome-flags="${chromeFlags.join(' ')}"`);
if (opts.view)
args.push('--view');
await dependency.executeLighthouse(args);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRob3VzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWdodGhvdXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQWdCdkIsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLElBQXlCLEVBQ3pCLFVBQXFFO0lBRXJFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksYUFBYSxDQUFBO0lBQ3ZELE1BQU0sVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUVyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQTtJQUM5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUN4RCxNQUFNLElBQUksR0FBYTtRQUNyQixJQUFJLENBQUMsR0FBRztRQUNSLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsaUJBQWlCLFVBQVUsRUFBRTtRQUM3QiwrQkFBK0I7UUFDL0IsaUJBQWlCLFVBQVUsRUFBRTtLQUM5QixDQUFBO0lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQ1Asc0JBQXNCLEVBQ3RCLCtCQUErQixFQUMvQix1Q0FBdUMsRUFDdkMscUNBQXFDLEVBQ3JDLHNDQUFzQyxDQUN2QyxDQUFBO0tBQ0Y7U0FBTSxJQUFJLElBQUksQ0FBQyxhQUFhO1FBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFFcEcsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFFaEQsTUFBTSxXQUFXLEdBQWEsQ0FBQyw2QkFBNkIsRUFBRSxtQ0FBbUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDbEgsSUFBSSxJQUFJLENBQUMsUUFBUTtRQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFdEQsSUFBSSxJQUFJLENBQUMsSUFBSTtRQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFbEMsTUFBTSxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDMUMsQ0FBQyJ9