Configuring Unlighthouse

Each integration comes with a way to configure Unlighthouse inline; however, you may want to create a separate configuration file when dealing with complex sites.

Configuration file

By default, a unlighthouse.config.ts file within the root (or cwd) directory will be read. You can change the name of the configuration file with the configFile option, or --config flag for the CLI.

Local dependency - with Typescript

When you load Unlighthouse into your project as a dev dependency and you're using Typescript, you can make use of proper configuration types.

unlighthouse.config.ts
/// <reference types="unlighthouse" />
import {defineConfig} from 'unlighthouse'

export default defineConfig({
  // example
  site: 'unlighthouse.dev',
  scanner: {
    exclude: ['/private-zone/*']
  },
  debug: true,
})

Global dependency

You can still provide a configuration file when using Unlighthouse globally, however, you won't be able to make use of the types or defineConfig function, instead you'll need to export a plain object.

unlighthouse.config.ts
export default {
  // example
  site: 'unlighthouse.dev',
  scanner: {
    exclude: ['/private-zone/*']
  },
  debug: true,
}

See the list of config options in the Config Reference.

Example

unlighthouse.config.ts
export default {
  site: 'harlanzw.com',
  scanner: {
    // exclude specific routes
    exclude: [
      '/.*?pdf',
      '.*/amp',
      'en-*',
    ],
    // run lighthouse for each URL 3 times
    samples: 3,
    // use desktop to scan
    device: 'desktop',
    // enable the throttling mode
    throttle: true,
  },
  debug: true,
}