GithubHelp home page GithubHelp logo

zachleat / speedlify Goto Github PK

View Code? Open in Web Editor NEW
903.0 14.0 163.0 10.02 MB

Benchmark the web performance and accessibility of sites over time.

Home Page: https://www.speedlify.dev/

License: MIT License

JavaScript 56.44% CSS 14.42% Nunjucks 29.14%
speedlify eleventy

speedlify's Introduction

speedlify

After you make a fast web site, keep it fast by measuring it over time. Read Use Speedlify to Continuously Measure Site Performance. Created by @zachleat.

  • Requires Node 12+
  • Each file in _data/sites/*.js is a category and contains a list of sites for comparison.

Run locally

After cloning you’ll probably want to delete the initial _data/sites/*.js files and create your own file with a list of your own site URLs!

npm install
npm run test-pages
npm run start

Related

Deploy to Netlify

Can run directly on Netlify (including your tests) and will save the results to a Netlify build cache (via Netlify Build Plugins, see plugins/keep-data-cache/).

After cloning you’ll probably want to delete the initial _data/sites/*.js files and create your own file with a list of your own site URLs!

Speedlify will also save your data to /results.zip so that you can download later. Though this has proved to be unnecessary so far, it does serve as a fallback backup mechanism in case the Netlify cache is lost. Just look up your previous build URL and download the data to restore.

Netlify Status

Known Limitations

  • If you change a URL to remove a redirect (to remove or add a www., moved domains, etc), you probably want to delete the old URL’s data otherwise you’ll have two entries in the results list.
  • When running on Netlify, a single category has a max limit on the number of sites it can test, upper bound on how many tests it can complete in the 15 minute Netlify build limit.
  • The same URL cannot be listed in two different categories (yet).

Pay for something better

Speedlify is intended as a stepping stone to more robust performance monitoring solutions like:

speedlify's People

Contributors

delucis avatar dmgawel avatar ixartz avatar krompaco avatar nhoizey avatar polarbirke avatar thewbear avatar zachleat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

speedlify's Issues

Rename _data/sites.js to _data/sites-sample.js

When updating a fork, _data/sites.js should be the only file with legitimate changes to keep, so renaming it to _data/sites-sample.js in the source repository would allow easier forks updates.

Speedlify could look for sites-sample data if there is no sites data, and add a big notification in the UI (like Eleventy's documentation button… 😅) to invite people to create their own sites.js file.

UnhandledPromiseRejectionWarning: TypeError: Cannot set property 'hundos' of undefined

Hi Zach!

I'm trying to get the basic Deploy to Netlify button working but the build times out at the 15min limit. I'm running into the following error:

(node:1514) UnhandledPromiseRejectionWarning: TypeError: Cannot set property 'hundos' of undefined
12:31:58 PM:     at /opt/build/repo/node_modules/performance-leaderboard/src/ResultLogger.js:209:28
12:31:58 PM:     at Array.map (<anonymous>)
12:31:58 PM:     at ResultLogger.getFinalSortedResults (/opt/build/repo/node_modules/performance-leaderboard/src/ResultLogger.js:207:38)
12:31:58 PM:     at runLighthouse (/opt/build/repo/node_modules/performance-leaderboard/performance-leaderboard.js:87:26)
12:31:58 PM:     at async /opt/build/repo/run-tests.js:106:17

View the full deploy logs below:

12:21:48 PM: (Site 6 of 12, run 1 of 3): https://gridsome.org/
12:23:05 PM: Logged an error with https://gridsome.org/:  LighthouseError [LHError]: PROTOCOL_TIMEOUT
12:23:05 PM:     at Timeout._onTimeout (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:352:21)
12:23:05 PM:     at listOnTimeout (internal/timers.js:549:17)
12:23:05 PM:     at processTimers (internal/timers.js:492:7) {
12:23:05 PM:   code: 'PROTOCOL_TIMEOUT',
12:23:05 PM:   friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Emulation.setScriptExecutionDisabled)',
12:23:05 PM:   lhrRuntimeError: true,
12:23:05 PM:   protocolMethod: 'Emulation.setScriptExecutionDisabled'
12:23:05 PM: }
12:23:05 PM: (Site 7 of 12, run 1 of 3): https://vuepress.vuejs.org/
12:24:21 PM: Logged an error with https://vuepress.vuejs.org/:  LighthouseError [LHError]: PROTOCOL_TIMEOUT
12:24:21 PM:     at Timeout._onTimeout (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:352:21)
12:24:21 PM:     at listOnTimeout (internal/timers.js:549:17)
12:24:21 PM:     at processTimers (internal/timers.js:492:7) {
12:24:21 PM:   code: 'PROTOCOL_TIMEOUT',
12:24:21 PM:   friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Emulation.setScriptExecutionDisabled)',
12:24:21 PM:   lhrRuntimeError: true,
12:24:21 PM:   protocolMethod: 'Emulation.setScriptExecutionDisabled'
12:24:21 PM: }
12:24:21 PM: (Site 8 of 12, run 1 of 3): https://v2.docusaurus.io/
12:24:37 PM: (Site 9 of 12, run 1 of 3): https://docsify.js.org/
12:24:43 PM: (Site 10 of 12, run 1 of 3): https://jekyllrb.com/
12:24:46 PM: (Site 11 of 12, run 1 of 3): https://hexo.io/
12:24:56 PM: (Site 12 of 12, run 1 of 3): https://sapper.svelte.dev/
12:25:00 PM: (Site 1 of 12, run 2 of 3): https://www.11ty.dev/
12:25:04 PM: (Site 2 of 12, run 2 of 3): https://www.gatsbyjs.org/
12:25:14 PM: (Site 3 of 12, run 2 of 3): https://gohugo.io/
12:25:22 PM: (Site 4 of 12, run 2 of 3): https://nextjs.org/
12:25:30 PM: (Site 5 of 12, run 2 of 3): https://nuxtjs.org/
12:25:38 PM: (Site 6 of 12, run 2 of 3): https://gridsome.org/
12:26:55 PM: Logged an error with https://gridsome.org/:  LighthouseError [LHError]: PROTOCOL_TIMEOUT
12:26:55 PM:     at Timeout._onTimeout (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:352:21)
12:26:55 PM:     at listOnTimeout (internal/timers.js:549:17)
12:26:55 PM:     at processTimers (internal/timers.js:492:7) {
12:26:55 PM:   code: 'PROTOCOL_TIMEOUT',
12:26:55 PM:   friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Emulation.setScriptExecutionDisabled)',
12:26:55 PM:   lhrRuntimeError: true,
12:26:55 PM:   protocolMethod: 'Emulation.setScriptExecutionDisabled'
12:26:55 PM: }
12:26:55 PM: (Site 7 of 12, run 2 of 3): https://vuepress.vuejs.org/
12:27:56 PM: Logged an error with https://vuepress.vuejs.org/:  LighthouseError [LHError]: PROTOCOL_TIMEOUT
12:27:56 PM:     at Timeout._onTimeout (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:352:21)
12:27:56 PM:     at listOnTimeout (internal/timers.js:549:17)
12:27:56 PM:     at processTimers (internal/timers.js:492:7) {
12:27:56 PM:   code: 'PROTOCOL_TIMEOUT',
12:27:56 PM:   friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Network.emulateNetworkConditions)',
12:27:56 PM:   lhrRuntimeError: true,
12:27:56 PM:   protocolMethod: 'Network.emulateNetworkConditions'
12:27:56 PM: }
12:27:56 PM: (Site 8 of 12, run 2 of 3): https://v2.docusaurus.io/
12:28:05 PM: (Site 9 of 12, run 2 of 3): https://docsify.js.org/
12:28:11 PM: (Site 10 of 12, run 2 of 3): https://jekyllrb.com/
12:28:15 PM: (Site 11 of 12, run 2 of 3): https://hexo.io/
12:28:24 PM: (Site 12 of 12, run 2 of 3): https://sapper.svelte.dev/
12:28:28 PM: (Site 1 of 12, run 3 of 3): https://www.11ty.dev/
12:28:32 PM: (Site 2 of 12, run 3 of 3): https://www.gatsbyjs.org/
12:28:41 PM: (Site 3 of 12, run 3 of 3): https://gohugo.io/
12:28:49 PM: (Site 4 of 12, run 3 of 3): https://nextjs.org/
12:28:57 PM: (Site 5 of 12, run 3 of 3): https://nuxtjs.org/
12:29:05 PM: (Site 6 of 12, run 3 of 3): https://gridsome.org/
12:30:22 PM: Logged an error with https://gridsome.org/:  LighthouseError [LHError]: PROTOCOL_TIMEOUT
12:30:22 PM:     at Timeout._onTimeout (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:352:21)
12:30:22 PM:     at listOnTimeout (internal/timers.js:549:17)
12:30:22 PM:     at processTimers (internal/timers.js:492:7) {
12:30:22 PM:   code: 'PROTOCOL_TIMEOUT',
12:30:22 PM:   friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Emulation.setScriptExecutionDisabled)',
12:30:22 PM:   lhrRuntimeError: true,
12:30:22 PM:   protocolMethod: 'Emulation.setScriptExecutionDisabled'
12:30:22 PM: }
12:30:22 PM: (Site 7 of 12, run 3 of 3): https://vuepress.vuejs.org/
12:31:23 PM: Logged an error with https://vuepress.vuejs.org/:  LighthouseError [LHError]: PROTOCOL_TIMEOUT
12:31:23 PM:     at Timeout._onTimeout (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:352:21)
12:31:23 PM:     at listOnTimeout (internal/timers.js:549:17)
12:31:23 PM:     at processTimers (internal/timers.js:492:7) {
12:31:23 PM:   code: 'PROTOCOL_TIMEOUT',
12:31:23 PM:   friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Network.emulateNetworkConditions)',
12:31:23 PM:   lhrRuntimeError: true,
12:31:23 PM:   protocolMethod: 'Network.emulateNetworkConditions'
12:31:23 PM: }
12:31:23 PM: (Site 8 of 12, run 3 of 3): https://v2.docusaurus.io/
12:31:33 PM: (Site 9 of 12, run 3 of 3): https://docsify.js.org/
12:31:39 PM: (Site 10 of 12, run 3 of 3): https://jekyllrb.com/
12:31:43 PM: (Site 11 of 12, run 3 of 3): https://hexo.io/
12:31:54 PM: (Site 12 of 12, run 3 of 3): https://sapper.svelte.dev/
12:31:58 PM: (node:1514) UnhandledPromiseRejectionWarning: TypeError: Cannot set property 'hundos' of undefined
12:31:58 PM:     at /opt/build/repo/node_modules/performance-leaderboard/src/ResultLogger.js:209:28
12:31:58 PM:     at Array.map (<anonymous>)
12:31:58 PM:     at ResultLogger.getFinalSortedResults (/opt/build/repo/node_modules/performance-leaderboard/src/ResultLogger.js:207:38)
12:31:58 PM:     at runLighthouse (/opt/build/repo/node_modules/performance-leaderboard/performance-leaderboard.js:87:26)
12:31:58 PM:     at async /opt/build/repo/run-tests.js:106:17
12:31:58 PM: (node:1514) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 83)
12:31:58 PM: (node:1514) [DEP0018] 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.
12:32:00 PM: > [email protected] build /opt/build/repo
12:32:00 PM: > npx @11ty/eleventy --quiet
12:32:01 PM: Copied 4 files / Wrote 37 files in 0.34 seconds (9.2ms each, v0.11.0)
12:32:01 PM: > [email protected] zip-results /opt/build/repo
12:32:01 PM: > node zip-results.js

Cannot find module './results-last-runs.json'

Following the instructions for the local install - I :

  • cloned the file
  • removed the sites except one file and changed URLS for my sites
  • ran the three npm commands (which let me know it had'nt run before)
    Ran it - got an arror Cannot find module './results-last-runs.json'

Looking at the folder, there is no file named 'results-last-runs.json'

This is always going to throw an error on the first run if the file is missing and doesn't seem to create it on first run

itsupport@oit-lt02 MINGW64 ~/Dropbox/Dev/2-speedlify (live)
$ npm run test-pages

[email protected] test-pages C:\Users\itsupport\Dropbox\Dev\2-speedlify
node run-tests

There are no known last run timestamps
Skipping test-runners (you told me to in your site config)

itsupport@oit-lt02 MINGW64 ~/Dropbox/Dev/2-speedlify (live)
$ npm run start

[email protected] start C:\Users\itsupport\Dropbox\Dev\2-speedlify
npx @11ty/eleventy --quiet --serve

Cannot find module './results-last-runs.json'
Require stack:

  • C:\Users\itsupport\Dropbox\Dev\2-speedlify_data\lastruns.js
  • C:\Users\itsupport\Dropbox\Dev\2-speedlify\node_modules@11ty\eleventy\src\TemplateData.js
  • C:\Users\itsupport\Dropbox\Dev\2-speedlify\node_modules@11ty\eleventy\src\Eleventy.js
  • C:\Users\itsupport\Dropbox\Dev\2-speedlify\node_modules@11ty\eleventy\cmd.js

Error was thrown:
Error: Cannot find module './results-last-runs.json'
Require stack:
- C:\Users\itsupport\Dropbox\Dev\2-speedlify_data\lastruns.js
- C:\Users\itsupport\Dropbox\Dev\2-speedlify\node_modules@11ty\eleventy\src\TemplateData.js
- C:\Users\itsupport\Dropbox\Dev\2-speedlify\node_modules@11ty\eleventy\src\Eleventy.js
- C:\Users\itsupport\Dropbox\Dev\2-speedlify\node_modules@11ty\eleventy\cmd.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
at Function.Module._load (internal/modules/cjs/loader.js:842:27)
at Module.require (internal/modules/cjs/loader.js:1026:19)

Axe doesn't run leading to empty results page

On my Mac on one of my sites tarasis.net the Axe component of the test doesn't run which leads to an empty results page. Doesn't matter how many times I re-run the command.

However, when run via netlify, it does appear to work

Empty results paage
Screenshot 2024-02-03 at 13 51 33

The output during npm run test-pages for the site

First tests for tarasisdotnet.
Testing 1 site:
(Site 1 of 1, run 1 of 3): https://tarasis.net/
(Site 1 of 1, run 2 of 3): https://tarasis.net/
(Site 1 of 1, run 3 of 3): https://tarasis.net/
Writing ./_data/results/8f148085/date-1706963769478.json.
Finished testing "tarasisdotnet".
Last runs after "tarasisdotnet": {"galshaw":{"timestamp":1706963790553},"rmcg":{"timestamp":1706963828368},"tarasisdotnet":{"timestamp":1706963926536}}

For the other sites I checked I can see an additional line

Axe scan (1 of 1) for https://rmcg.dev/

Nor is the a file in .log for axe being run on that site

❯ find . | grep tarasis
./lighthouse-https-tarasis.net-2-of-3.json
./lighthouse-https-tarasis.net-3-of-3.json
./lighthouse-https-tarasis.net-1-of-3.json

❯ find . | grep rmcg
./lighthouse-https-rmcg.dev-1-of-3.json
./lighthouse-https-rmcg.dev-3-of-3.json
./axe-https-rmcg.dev.json
./lighthouse-https-rmcg.dev-2-of-3.json

Using the chrome extension I see the site has 5 issues (result on Netlify agrees)

Initial build on Netlify fails when zipping results

I forked, adjusted the sites and the initial build on Netlify failed with this in the "Building" phase:

Error: Command failed: zip -r -y /opt/build/repo/_site/results.zip results

Simply adding _data/results/.gitkeep to the repo fixed it.

Not sure if that's just happening to me… 🤷‍♂️

Automatically retrieving URLs from sitemap

Hello, I have been playing around with Speedlify for the last couple of days (I love it! ❤️)

One thing I noticed is that I have to manually add the URLs to the site's config file in _data/sites and I decided to add this NPM package to the dependencies to automatically retrieve URLs from a sitemap that I added as a config parameter.

Is this something that could be useful or do you see any downside in doing this?

Idea: Shared scale for the page weight plots

The lighthouse scores are set to the same 0-400 scale, which makes them visually comparable. I.e. as you scroll down, the far end of the graphs go lower, as it is sorted by score.

The page weight graphs, however, do not share the same scale. This means they all tend to be at the "top" despite being of very different sizes. I suppose there is a benefit to "zooming in" to the relatively change of a given website, but with the kilobyte number as small as it is, the difference is perhaps easier to appreciate if the graphs also shared the same scale. E.g. the top of the page weight scales would be determined by the largest data point within the range of time and sites shown on the current page.

Example from https://www.speedlify.dev/test-runners/:

Screenshot

Local test run fails with `UnhandledPromiseRejectionWarning` error message

Couldn't run tests locally on a Linux virtual machine.

❯ npm run test-pages

> [email protected] test-pages /home/d2s/[... directory path ...]/speedlify
> node run-tests

There are no known last run timestamps
First tests for netlify.
Testing 9 sites:
(node:12367) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:40217
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
(node:12367) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:12367) [DEP0018] 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.

Dependencies installed properly with npm install but for some reason Chromium doesn't seem to work properly.

❯ node --version
v12.18.0

This bug report is related to the latest Git commit cd322fe5f111ca59894b0c9f9497c57725fee087 of the speedlify repository.

single vertical index?

hello

  • thanks for making speedlify; it's the best
  • is it possible for the index/homepage to be a single vertical (of test sites)?

Documentation lacking

I tried to find how the actual lists are sorted (ie. how the scores are weighted and compared against each other) and didn't really find it mentioned anywhere and I couldn't figure it out just by reading the code either. Any clarification possible?

Deploying to Netlify seems to break

I basically hit the 'push to Netlify' button and get this error:

12:37:30 AM: Problem writing Eleventy templates: (more in DEBUG output)
12:37:30 AM: > Having trouble rendering 11ty.js template ./api.11ty.js
12:37:30 AM: `TemplateContentRenderError` was thrown
12:37:30 AM: > Cannot read property '5fbe07d5' of undefined
12:37:30 AM: `TypeError` was thrown:
12:37:30 AM:     TypeError: Cannot read property '5fbe07d5' of undefined
12:37:30 AM:         at ApiEntry.render (/opt/build/repo/api.11ty.js:19:31)
12:37:30 AM:         at JavaScript.<anonymous> (/opt/build/repo/node_modules/@11ty/eleventy/src/Engines/JavaScript.js:129:43)
12:37:30 AM:         at Template.render (/opt/build/repo/node_modules/@11ty/eleventy/src/TemplateContent.js:199:28)
12:37:30 AM:         at processTicksAndRejections (internal/process/task_queues.js:97:5)
12:37:30 AM:         at async Template._getContent (/opt/build/repo/node_modules/@11ty/eleventy/src/Template.js:547:12)
12:37:30 AM:         at async Template.getTemplateMapContent (/opt/build/repo/node_modules/@11ty/eleventy/src/Template.js:732:19)
12:37:30 AM:         at async TemplateMap.populateContentDataInMap (/opt/build/repo/node_modules/@11ty/eleventy/src/TemplateMap.js:359:39)
12:37:30 AM:         at async TemplateMap.cache (/opt/build/repo/node_modules/@11ty/eleventy/src/TemplateMap.js:303:5)
12:37:30 AM:         at async TemplateWriter._createTemplateMap (/opt/build/repo/node_modules/@11ty/eleventy/src/TemplateWriter.js:170:5)
12:37:30 AM:         at async TemplateWriter.writeTemplates (/opt/build/repo/node_modules/@11ty/eleventy/src/TemplateWriter.js:203:5)
12:37:30 AM: Copied 2 files / Wrote 0 files in 0.13 seconds (v0.11.0)
12:37:30 AM: npm ERR! code ELIFECYCLE
12:37:30 AM: npm ERR! errno 1
12:37:30 AM: npm ERR! [email protected] build: `npx @11ty/eleventy --quiet`
12:37:30 AM: npm ERR! Exit status 1
12:37:30 AM: npm ERR!

Can anyone try deploying to Netlify and confirm if it works for them?

Question about rankings methodology

Looking at these two ranking details side-by-side leaves me a bit curious as to the real methodology behind these rankings.

Ranked #2 Ranked #71
Screen Shot 2020-09-08 at 11 02 54 AM Screen Shot 2020-09-08 at 11 02 29 AM

As you can see, the statistics for the website ranked #71 match or beat the rankings for the #2 site in all displayed categories. Intuitively, I would think that #71 would be considered a higher performing site than #2.

However, I'm aware that the #71 site uses Zeit/Vercel rather than Netlify, so I'm hypothesizing that there may be some internal artificial preference for sites hosted on Netlify?

This isn't an urgent question/issue, but it's got me curious. I'd love to get any insight.

lighthouseTotal as % (w/ 💯 for perfect)

me again @zachleat 👋🏾

just wondering if you had any thoughts on this...

  • the option to display lighthouseTotal as a % (instead of an absolute number out-of-400)
  • and if % is chosen then perhaps 💯 can be used for perfect scores instead of 😍
  • i feel for some less-tech-savy peeps a relative score is more meaningful

Lighthouse create log folder in each run

Hi, everyone.

I've started to use the project and it's working very well, but after each each run in a folder like lighthouse.3t9NZEo is being created but never deleted. How can I make sure that it's being cleaned up or how can I disable this creation step?

lighthouse logs

Connection refused on localhost (when selfhosting)

I was trying to self host speedlify on a VPS I have rather than netlify.

When I run it on the VPS (x86_64), and also on my Rapsberry PI running Raspbian Bookworm I get the following error

VPS Results

rob@kvm-ams:~/speedlify$ npm run test-pages

> [email protected] test-pages
> node run-tests

There are no known last run timestamps
First tests for galshaw.
Testing 1 site:
node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: connect ECONNREFUSED 127.0.0.1:39819
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 39819
}

Node.js v18.17.1
rob@kvm-ams:~/speedlify$ 

----

PI Results

tarasis@rp4b:~/git-repos/speedlify $ npm run test-pages

> [email protected] test-pages
> node run-tests

There are no known last run timestamps
First tests for galshaw.
Testing 1 site:
node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: connect ECONNREFUSED 127.0.0.1:40835
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1602:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 40835
}

Node.js v21.6.1

However on my Mac* & Netlify it runs perfectly.

Last runs at start:  {}
First tests for galshaw.
Testing 1 site:
(Site 1 of 1, run 1 of 3): https://galshaw.it
(Site 1 of 1, run 2 of 3): https://galshaw.it
(Site 1 of 1, run 3 of 3): https://galshaw.it
Axe scan (1 of 1) for https://galshaw.it
Writing ./_data/results/e8b5024f/date-1706963769478.json.
Finished testing "galshaw".
Last runs after "galshaw": {"galshaw":{"timestamp":1706963790553}}

"Unknown error" for some websites when running speedlify locally

I tried to fork this repo and run it locally and while it did run and I got some results my own website resulted in an unknown error:

{
  "url": "https://www.blog.davidmoll.net/",
  "error": "Unknown error.",
  "sidequests": {
    "-weight.total": 3,
    "+weight.total": 3,
    "-weight.document": 3,
    "+weight.document": 3,
    "-weight.script": 3,
    "+weight.script": 3,
    "-weight.image": 3,
    "+weight.image": 3,
    "-weight.font": 3,
    "+weight.font": 3,
    "+weight.fontCount": 3,
    "-timeToFirstByte": 3,
    "-totalBlockingTime": 3,
    "-largestContentfulPaint": 3
  }
}

ssg.js looks like this:

module.exports = {
	name: "SSG",
	description: "Static Site Generator web sites",
	options: {
		frequency: 60 * 23,
		freshChrome: "run"
	},
	urls: [
		"https://www.blog.davidmoll.net",
		"https://www.11ty.dev/",
		"https://www.gatsbyjs.com/",
	]
};

Other websites in the ssg.js-file ran fine. I am selfhosting my website using cloudflare tunnel on a Raspberry Pi. Any idea what could cause this?

Private sites

Is it possible to place to monitor on private websites? For example, a development environment that has a password.

Otherwise, do you find it interesting to add a resource for this?

Running tests on very large sets fails

I attempted to run a test on a set of approximately 1,700 unique homepages. The process failed before completing the first run (running locally).

  1. Do you have recommendations for running very large sets, or
  2. Is there a way to run smaller sets and then combine the results to get a combined leader board?

Thanks

Building Failed.

Debug log_

11:23:45 AM: Netlify Build                                                 
11:23:45 AM: ────────────────────────────────────────────────────────────────
11:23:45 AM: ​
11:23:45 AM: ❯ Version
11:23:45 AM:   @netlify/build 29.21.1
11:23:45 AM: ​
11:23:45 AM: ❯ Flags
11:23:45 AM:   baseRelDir: true
11:23:45 AM:   buildId: 651263bfcbf1430edabef215
11:23:45 AM:   deployId: 651263bfcbf1430edabef217
11:23:45 AM: ​
11:23:45 AM: ❯ Current directory
11:23:45 AM:   /opt/build/repo
11:23:45 AM: ​
11:23:45 AM: ❯ Config file
11:23:45 AM:   /opt/build/repo/netlify.toml
11:23:45 AM: ​
11:23:45 AM: ❯ Context
11:23:45 AM:   production
11:23:45 AM: ​
11:23:45 AM: ❯ Installing plugins
11:23:45 AM:    - @netlify/[email protected]
11:23:52 AM: ​
11:23:52 AM: ❯ Loading plugins
11:23:52 AM:    - @netlify/[email protected] from Netlify app
11:23:52 AM:    - ./plugins/[email protected] from netlify.toml
11:23:54 AM: ​
11:23:54 AM: ./plugins/keep-data-cache (onPreBuild event)                  
11:23:54 AM: ────────────────────────────────────────────────────────────────
11:23:54 AM: ​
11:23:54 AM: ​
11:23:54 AM: (./plugins/keep-data-cache onPreBuild completed in 7ms)
11:23:54 AM: ​
11:23:54 AM: build.command from netlify.toml                               
11:23:54 AM: ────────────────────────────────────────────────────────────────
11:23:54 AM: ​
11:23:54 AM: $ npm run build-production
11:23:54 AM: > [email protected] build-production
11:23:54 AM: > npm run test-pages && npm run build && npm run zip-results
11:23:54 AM: > [email protected] test-pages
11:23:54 AM: > node run-tests
11:23:55 AM: There are no known last run timestamps
11:23:55 AM: Skipping ksvblog (you told me to in your site config)
11:23:55 AM: > [email protected] build
11:23:55 AM: > npx @11ty/eleventy --quiet
11:23:56 AM: [11ty] Copied 2 files / Wrote 5 files in 0.11 seconds (v2.0.1)
11:23:56 AM: > [email protected] zip-results
11:23:56 AM: > node zip-results.js
11:23:56 AM: node:child_process:929
11:23:56 AM:     throw err;
11:23:56 AM:     ^
11:23:56 AM: Error: Command failed: zip -r -y /opt/build/repo/_site/results.zip results
11:23:56 AM:     at checkExecSyncError (node:child_process:890:11)
11:23:56 AM:     at Object.execFileSync (node:child_process:926:15)
11:23:56 AM:     at Object.zipSync (/opt/build/repo/node_modules/cross-zip/index.js:81:6)
11:23:56 AM:     at Object.<anonymous> (/opt/build/repo/zip-results.js:7:5)
11:23:56 AM:     at Module._compile (node:internal/modules/cjs/loader:1256:14)
11:23:56 AM:     at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
11:23:56 AM:     at Module.load (node:internal/modules/cjs/loader:1119:32)
11:23:56 AM:     at Module._load (node:internal/modules/cjs/loader:960:12)
11:23:56 AM:     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:86:12) {
11:23:56 AM:   status: 12,
11:23:56 AM:   signal: null,
11:23:56 AM:   output: [
11:23:56 AM:     null,
11:23:56 AM:     Buffer(131) [Uint8Array] [
11:23:56 AM:         9, 122, 105, 112,  32, 119,  97, 114, 110, 105, 110, 103,
11:23:56 AM:        58,  32, 110,  97, 109, 101,  32, 110, 111, 116,  32, 109,
11:23:56 AM:        97, 116,  99, 104, 101, 100,  58,  32, 114, 101, 115, 117,
11:23:56 AM:       108, 116, 115,  10,  10, 122, 105, 112,  32, 101, 114, 114,
11:23:56 AM:       111, 114,  58,  32,  78, 111, 116, 104, 105, 110, 103,  32,
11:23:56 AM:       116, 111,  32, 100, 111,  33,  32,  40, 116, 114, 121,  58,
11:23:56 AM:        32, 122, 105, 112,  32,  45, 114,  32,  45, 121,  32,  47,
11:23:56 AM:       111, 112, 116,  47,  98, 117, 105, 108, 100,  47, 114, 101,
11:23:56 AM:       112, 111,  47,  95,
11:23:56 AM:       ... 31 more items
11:23:56 AM:     ],
11:23:56 AM:     Buffer(0) [Uint8Array] []
11:23:56 AM:   ],
11:23:56 AM:   pid: 4195,
11:23:56 AM:   stdout: Buffer(131) [Uint8Array] [
11:23:56 AM:       9, 122, 105, 112,  32, 119,  97, 114, 110, 105, 110, 103,
11:23:56 AM:      58,  32, 110,  97, 109, 101,  32, 110, 111, 116,  32, 109,
11:23:56 AM:      97, 116,  99, 104, 101, 100,  58,  32, 114, 101, 115, 117,
11:23:56 AM:     108, 116, 115,  10,  10, 122, 105, 112,  32, 101, 114, 114,
11:23:56 AM:     111, 114,  58,  32,  78, 111, 116, 104, 105, 110, 103,  32,
11:23:56 AM:     116, 111,  32, 100, 111,  33,  32,  40, 116, 114, 121,  58,
11:23:56 AM:      32, 122, 105, 112,  32,  45, 114,  32,  45, 121,  32,  47,
11:23:56 AM:     111, 112, 116,  47,  98, 117, 105, 108, 100,  47, 114, 101,
11:23:56 AM:     112, 111,  47,  95,
11:23:56 AM:     ... 31 more items
11:23:56 AM:   ],
11:23:56 AM:   stderr: Buffer(0) [Uint8Array] []
11:23:56 AM: }
11:23:56 AM: Node.js v18.18.0
11:23:56 AM: ​
11:23:56 AM: "build.command" failed                                        
11:23:56 AM: ────────────────────────────────────────────────────────────────
11:23:56 AM: ​
11:23:56 AM:   Error message
11:23:56 AM:   Command failed with exit code 1: npm run build-production (https://ntl.fyi/exit-code-1)
11:23:56 AM: ​
11:23:56 AM:   Error location
11:23:56 AM:   In build.command from netlify.toml:
11:23:56 AM:   npm run build-production
11:23:56 AM: ​
11:23:56 AM:   Resolved config
11:23:56 AM:   build:
11:23:56 AM:     command: npm run build-production
11:23:56 AM:     commandOrigin: config
11:23:56 AM:     environment:
11:23:56 AM:       - PUPPETEER_CACHE_DIR
11:23:56 AM:     publish: /opt/build/repo/_site
11:23:56 AM:     publishOrigin: config
11:23:56 AM:   headers:
11:23:57 AM: Build failed due to a user error: Build script returned non-zero exit code: 2
11:23:57 AM: Failing build: Failed to build site
11:23:58 AM: Finished processing build request in 36.886s
11:23:57 AM: Failed during stage "building site": Build script returned non-zero exit code: 2

"Deploy to Netlify" fails — NodeJS version < 14?

"Deploy to Netlify" seems broken.

The Netlify Deploy fails run-tests with a SyntaxError because NodeJS 12 does not support the ?. Optional chaining operator:

image

There are many warnings before this, specifically:

npm WARN notsup Unsupported engine for [email protected]: wanted: {"node":">=14.15"} (current: {"node":"12.22.7","npm":"6.14.15"})

It seems the latest "performance-leaderboard": "^9.0.0" requires lighthouse ^9.0.0 which, in turn, requires NodeJS >= 14.15 but Netlify is running NodeJS 12.

I cannot see where we can/should update the NodeJS version Netlify Deploy should be using...

Can't get it to run on macOS

I'm running Node 14.0.0. I cloned the repo, ran npm install and then when I run npm run testpages I get the following error:

✖ npm run test-pages

> [email protected] test-pages /Users/myusername/Desktop/speedlify
> node run-tests

There are no known last run timestamps
First tests for netlify.
Testing 9 sites:
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: spawn /Users/myusername/Desktop/speedlify/node_modules/puppeteer/.local-chromium/mac-756035/chrome-mac/Chromium.app/Contents/MacOS/Chromium ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:268:19)
    at onErrorNT (internal/child_process.js:468:16)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:274:12)
    at onErrorNT (internal/child_process.js:468:16)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn /Users/myusername/Desktop/speedlify/node_modules/puppeteer/.local-chromium/mac-756035/chrome-mac/Chromium.app/Contents/MacOS/Chromium',
  path: '/Users/myusername/Desktop/speedlify/node_modules/puppeteer/.local-chromium/mac-756035/chrome-mac/Chromium.app/Contents/MacOS/Chromium',
  spawnargs: [
    '--disable-features=TranslateUI',
    '--disable-extensions',
    '--disable-component-extensions-with-background-pages',
    '--disable-background-networking',
    '--disable-sync',
    '--metrics-recording-only',
    '--disable-default-apps',
    '--mute-audio',
    '--no-default-browser-check',
    '--no-first-run',
    '--disable-backgrounding-occluded-windows',
    '--disable-renderer-backgrounding',
    '--disable-background-timer-throttling',
    '--force-fieldtrials=*BackgroundTracing/default/',
    '--remote-debugging-port=64870',
    '--user-data-dir=/var/folders/mg/0w3s95hd5dxdm7wdzq3bs8rw0000gn/T/lighthouse.XXXXXXX.X48A6iwi',
    '--headless',
    'about:blank'
  ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] test-pages: `node run-tests`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] test-pages script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/myusername/.npm/_logs/2020-07-03T14_11_34_994Z-debug.log

Known issue or am I doing something wrong?

Infinite axe scan step for certain page

I added a new page and now build process freezes for unlimited time during the "axe scan" step for this page.
If I remove this certain page from urls array, then everything is fine.
I tried to make a new fresh fork, but I still have the issue.

How can I debug it to figure out what is the problem with my page?

My speedlify fork: https://github.com/kirillunlimited/speedlify
The page that interfere the build: https://kirillunlimited.com/blog/join-the-dark-side/

Please deploy again

Speedlify has been deploying monthly until October, and it's suddenly stopped :(

Strange behaviour using deply to netlify button

Build was slow so I looked aty the netilify log

"friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Emulation.setScriptExecutionDisabled)"

then thought must be instramenting all your sites so I cancelled the deply and went to my speedlify repo on GitHub to edit- it is empty?

Surely the repo should be there even if I stopped the deploy?

Remove _data/sites/*.js "default" files from repository for easer fork install/update

Every time I try to update my fork, I get back the _data/sites/*.js from this repository, and most of the times, I forgot to remove them and have (at least) one big build on Netlify. 😅

It would be easier if these files where in a _data/sites-sample/ folder, and speedlify would alert if there is no _data/sites/*.js yet.

You @zachleat could then copy _data/sites-sample/ to _data/sites/ in your own fork running on Netlify.

It would be much easier for anyone else using speedlify for their own needs, but I agree it would be less easy for you @zachleat to manage both this and a fork, though. 🤷‍♂️

Speedlify on Netlify new issue on deploy .. Cache or Pupperter related

Hello,

Sorry for this message, i use speedlify for more than one year, 2 weeks ago builds become to failed with this errors :

4:03:36 PM: Using Ruby version 2.7.2
4:03:37 PM: Using PHP version 8.0
4:03:37 PM: Started restoring cached corepack dependencies
4:03:37 PM: mv: cannot move '/opt/build/cache/.node/corepack' to '/opt/buildhome/.node/corepack': No such file or directory
4:03:37 PM: Finished restoring cached corepack dependencies
4:03:37 PM: No npm workspaces detected
4:03:37 PM: Started restoring cached node modules
4:03:37 PM: Finished restoring cached node modules
4:03:37 PM: Bypassing sha validation. Running pre & post install scripts
4:03:37 PM: Installing npm packages using npm version 8.19.3
4:03:40 PM: added 20 packages, changed 3 packages, and audited 392 packages in 3s
4:03:40 PM: 63 packages are looking for funding
4:03:40 PM: run npm fund for details
4:03:40 PM: found 0 vulnerabilities
4:03:40 PM: npm packages installed
4:03:40 PM: Started restoring cached go cache
4:03:40 PM: Finished restoring cached go cache
4:03:40 PM: Installing Go version 1.16.5 (requested 1.16.5)
4:03:45 PM: unset GOOS;
4:03:45 PM: unset GOARCH;
4:03:45 PM: export GOROOT='/opt/buildhome/.gimme/versions/go1.16.5.linux.amd64';
4:03:45 PM: export PATH="/opt/buildhome/.gimme/versions/go1.16.5.linux.amd64/bin:${PATH}";
4:03:45 PM: go version >&2;
4:03:45 PM: export GIMME_ENV="/opt/buildhome/.gimme/env/go1.16.5.linux.amd64.env"
4:03:45 PM: go version go1.16.5 linux/amd64
4:03:46 PM: Detected 1 framework(s)
4:03:46 PM: "eleventy" at version "2.0.0-beta.2"
4:03:46 PM: Installing missing commands
4:03:46 PM: Verify run directory
4:03:46 PM: Section completed: initializing
4:03:47 PM: ​
4:03:47 PM: Netlify Build
4:03:47 PM: ────────────────────────────────────────────────────────────────
4:03:47 PM: ​
4:03:47 PM: ❯ Version
4:03:47 PM: @netlify/build 29.5.1
4:03:47 PM: ​
4:03:47 PM: ❯ Flags
4:03:47 PM: baseRelDir: true
4:03:47 PM: buildId: 63da7f3eb0cf91000a3b905d
4:03:47 PM: deployId: 63da7f3eb0cf91000a3b9060
4:03:47 PM: ​
4:03:47 PM: ❯ Current directory
4:03:47 PM: /opt/build/repo
4:03:47 PM: ​
4:03:47 PM: ❯ Config file
4:03:47 PM: /opt/build/repo/netlify.toml
4:03:47 PM: ​
4:03:47 PM: ❯ Context
4:03:47 PM: deploy-preview
4:03:47 PM: ​
4:03:47 PM: ❯ Loading plugins
4:03:47 PM: - ./plugins/[email protected] from netlify.toml
4:03:48 PM: ​
4:03:48 PM: 1. ./plugins/keep-data-cache (onPreBuild event)
4:03:48 PM: ────────────────────────────────────────────────────────────────
4:03:48 PM: ​
4:03:49 PM: ​
4:03:49 PM: (./plugins/keep-data-cache onPreBuild completed in 295ms)
4:03:49 PM: ​
4:03:49 PM: 2. build.command from netlify.toml
4:03:49 PM: ────────────────────────────────────────────────────────────────
4:03:49 PM: ​
4:03:49 PM: $ npm run build-production
4:03:49 PM: > [email protected] build-production
4:03:49 PM: > npm run test-pages && npm run build && npm run zip-results
4:03:49 PM: > [email protected] test-pages
4:03:49 PM: > node run-tests
4:03:50 PM: /opt/build/repo/node_modules/performance-leaderboard/node_modules/puppeteer-core/lib/cjs/puppeteer/node/ProductLauncher.js:127
4:03:50 PM: throw new Error(Could not find Chromium (rev. ${this.puppeteer.browserRevision}). This can occur if either\n +
4:03:50 PM: ^
4:03:50 PM: Error: Could not find Chromium (rev. 1083080). This can occur if either

4:03:50 PM: 1. you did not perform an installation before running the script (e.g. npm install) or
4:03:50 PM: 2. your cache path is incorrectly configured (which is: /opt/buildhome/.cache/puppeteer).
4:03:50 PM: For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides/configuration.
4:03:50 PM: at ChromeLauncher.resolveExecutablePath (/opt/build/repo/node_modules/performance-leaderboard/node_modules/puppeteer-core/lib/cjs/puppeteer/node/ProductLauncher.js:127:27)
4:03:50 PM: at ChromeLauncher.executablePath (/opt/build/repo/node_modules/performance-leaderboard/node_modules/puppeteer-core/lib/cjs/puppeteer/node/ChromeLauncher.js:205:25)
4:03:50 PM: at PuppeteerNode.executablePath (/opt/build/repo/node_modules/performance-leaderboard/node_modules/puppeteer-core/lib/cjs/puppeteer/node/PuppeteerNode.js:162:105)
4:03:50 PM: at Object. (/opt/build/repo/node_modules/performance-leaderboard/performance-leaderboard.js:7:50)
4:03:50 PM: at Module._compile (node:internal/modules/cjs/loader:1165:14)
4:03:50 PM: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10)
4:03:50 PM: at Module.load (node:internal/modules/cjs/loader:1043:32)
4:03:50 PM: at Function.Module._load (node:internal/modules/cjs/loader:878:12)
4:03:50 PM: at Module.require (node:internal/modules/cjs/loader:1067:19)
4:03:50 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2 (https://ntl.fyi/exit-code-2)
4:03:50 PM: at require (node:internal/modules/cjs/helpers:103:18)
4:03:50 PM: ​
4:03:50 PM: "build.command" failed

I read that the website of this repo run fine ... thx to https://www.speedlify.dev/
But on my side without any changes excepted a "click on retry to build without cache" it not work anymore.

Someone have an idea about this new issue ?

Adjust presentation for different use cases

I see at least two different use cases for Speedlify:

Sorting the URLs based on performance results makes sense for comparative benchmarks.

But sorting URLs by alpha would IMHO make more sense for monitoring, to always keep the same order.

I see three possible solutions:

  • a boolean leaderboard attribute
  • a sort attribute with multiple possibles values, url and score to start with
  • a type attribute with multiple possible values, leaderboard and monitoring to start with

The later allows for more personalization of reports, if the order is not the only thing to adapt.

Error: connect ECONNREFUSED 127.0.0.1:xxxxx

I'm running on my local virtual server on Proxmox with Ubuntu 22.04 LTS, Node.js v18.16.1. Everytime npm run test-pages give me this error.

> [email protected] test-pages
> node run-tests

There are no known last run timestamps
Skipping fakultas (you told me to in your site config)
First tests for sample.
Testing 6 sites:
node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: connect ECONNREFUSED 127.0.0.1:41941
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 41941
}

Node.js v18.16.1

any clue to make it run?

Screenshot: https://imgur.com/bIZDTte

URLs without trailing slash breaks build

I've created a test instance of Speedify here: https://github.com/budparr/speedlify

Problem

When building the site from generated results, the following (in _data/sites) breaks the build

urls: ["https://www.11ty.dev/", "https://www.11ty.dev/docs/getting-started"],
Error Detail

Uncaught exception: (more in DEBUG output)
> The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type boolean (false)

`TypeError` was thrown:
    TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type boolean (false)
        at writeFile (fs.js:1385:5)
        at go$writeFile (/Users/budparr/Code/prs/speedlify/node_modules/graceful-fs/graceful-fs.js:139:14)
        at Object.writeFile (/Users/budparr/Code/prs/speedlify/node_modules/graceful-fs/graceful-fs.js:136:12)
        at /Users/budparr/Code/prs/speedlify/node_modules/fs-extra/lib/output/index.js:23:10
        at /Users/budparr/Code/prs/speedlify/node_modules/fs-extra/lib/mkdirs/mkdirs.js:56:16
        at callback (/Users/budparr/Code/prs/speedlify/node_modules/graceful-fs/polyfills.js:295:20)
        at FSReqCallback.oncomplete (fs.js:177:5)

Immediate Fix

Changing the URLs to have a trailing slash creates no error:

urls: ["https://www.11ty.dev/", "https://www.11ty.dev/docs/getting-started/"],

note the change is adding a trailing slash to the end of the URL

Expected Behavior

I would expect that Speedlify would not care if a user put trailing slashes in their URL

Potential Solution

I suspect this is because of a site hash mismatch from api.11ty.js, but I haven't figured out how to fix it yet, so reporting in case this is an easy fix for someone else.

Build with only 5 websites pages > Timeout on Netlify

Hello,

After adding 2 websites pages to reach 5
I have Timeout issue on netlify build, before that all was good..

Any idea to avoid this issue ?
An extract of the log
Logged an error with https://website-702.eventmaker.io/: LighthouseError [LHError]: PROTOCOL_TIMEOUT 10:33:43 PM: at /opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:341:50 10:33:43 PM: at new Promise (<anonymous>) 10:33:43 PM: at Driver.sendCommandToSession (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:339:28) 10:33:43 PM: at Driver.sendCommand (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:362:17) 10:33:43 PM: at ExecutionContext._evaluateInContext (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver/execution-context.js:109:42) 10:33:43 PM: at ExecutionContext.evaluateAsync (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver/execution-context.js:146:25) 10:33:43 PM: at async Function.afterPass (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/gather-runner.js:341:7)

Someone have an idea ?

How to fix this build timeout error?

I couldn't build this for first time because this returns the following error every time. I tried few times re-running. Any other way?

7:49:56 PM: Logged an error with https://web3canvas.com/:  LighthouseError [LHError]: PROTOCOL_TIMEOUT
7:49:56 PM:     at Timeout._onTimeout (/opt/build/repo/node_modules/lighthouse/lighthouse-core/gather/driver.js:341:21)
7:49:56 PM:     at listOnTimeout (internal/timers.js:554:17)
7:49:56 PM:     at processTimers (internal/timers.js:497:7) {
7:49:56 PM:   code: 'PROTOCOL_TIMEOUT',
7:49:56 PM:   friendlyMessage: 'Waiting for DevTools protocol response has exceeded the allotted time. (Method: Runtime.evaluate)',
7:49:56 PM:   lhrRuntimeError: true,
7:49:56 PM:   protocolMethod: 'Runtime.evaluate'
7:49:56 PM: }

Detailed lighthouse and axe results

Hello! Thanks for creating such a great tool. I've been playing around with speedlify for a bit to monitor some of my projects, and it would be very helpful if there was a way to see which lighthouse or axe tests were failing so I can try to fix them, at least for the latest run.

Right now, I'm checking the scores in speedlify, then running the tests again to see what's failing, and I think it would be helpful if that info could be shown. Would this be possible?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.