Skip to content

Latest commit

 

History

History
76 lines (50 loc) · 2.87 KB

hacking-tips.md

File metadata and controls

76 lines (50 loc) · 2.87 KB

A few assorted scripts and tips to make hacking on Lighthouse a bit easier

Unhandled promise rejections

Getting errors like these?

(node:12732) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1) (node:12732) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Use --trace-warnings to get actual stack traces.

node --trace-warnings lighthouse-cli http://example.com

Updating fixture dumps

lighthouse-core/test/results/samples_v2.json is generated from running LH against dbw_tester.html. To update this file, start a local server on port 8080 and serve the directory lighthouse-cli/test/fixtures. Then run:

npm run start -- --output=json --output-path=lighthouse-core/test/results/sample_v2.json http://localhost:8080/dobetterweb/dbw_tester.html

After updating, consider deleting any irrelevant changes from the diff (exact timings, timestamps, etc). Be sure to run the tests.

Iterating on the v2 report

This will generate new reports from the same results json.

# capture some results first:
lighthouse --output=json http://example.com > temp.report.json

# quickly generate reports:
node generate_report_v2.js > temp.report.html; open temp.report.html
// generate_report_v2.js
'use strict';

const ReportGeneratorV2 = require('./lighthouse-core/report/v2/report-generator');
const results = require('./temp.report.json');
const html = new ReportGeneratorV2().generateReportHtml(results);

console.log(html);

Debugging Travis via docker image

You can do a local docker image install of Travis to better inspect a travis build:

docker run --name travis-debug -dit travisci/ci-garnet:packer-1496954857 /sbin/init
docker exec -it travis-debug bash -l

# once inside, change to travis user, rather than root
su - travis

# once on the travis user, make a clone of lighthouse and play around
# you may also want to mount a local folder into your docker instance. 
# This will mount your local machines's ~/temp/trav folder into the container's /home/travis/mountpoint folder
docker run -v $HOME/temp/trav:/home/travis/mountpoint --name travis-debug -dit travisci/ci-garnet:packer-1496954857 /sbin/init

You can then run the travis commands (e.g. travis compile) to install an environment and run the build script:

travis-ci/travis-build: .travis.yml => build.sh converter