@mercuryworks/lighthouse
TypeScript icon, indicating that this package has built-in type declarations

0.0.25 • Public • Published

Getting Started

  1. You'll need Node installed locally or on your CI release environment (use the LTS version, currently >= 12.x.x)

  2. You'll need either npm or yarn available

  3. Create a new folder in your Mercury project: Let's call it basic-lighthouse-test

  4. Add a package.json file inside of basic-lighthouse-test with the following JSON code:

    {
      "dependencies": {
        "@mercuryworks/lighthouse": "0.0.25",
        "@types/node": "14.0.27",
        "dotenv": "8.2.0",
        "ts-node": "8.10.2",
        "typescript": "3.9.7"
      },
      "license": "UNLICENSED",
      "name": "basic-lighthouse-test",
      "scripts": {
        "test": "ts-node index.ts"
      },
      "version": "0.0.1"
    }
    
  5. Add an index.ts file inside of basic-lighthouse-test with the following TypeScript code:

    import dotenv from 'dotenv';
    dotenv.config();
    import runMercuryLighthouseReport from '@mercuryworks/lighthouse';
    
    const run = async () => {
      try {
        const passed = await runMercuryLighthouseReport({ apiKey: process.env.API_KEY as string, url: process.env.APP_URL as string });
        // optional: exit node with an error code
        if (!passed) {
          process.exit(1);
        } else {
          process.exit(0);
        }
      } catch (err) {
        // runMercuryLighthouseReport always resolves when configured correctly
        console.error(err);
      }
    };
    
    run();
    
  6. To run locally, add a .env file inside of basic-lighthouse-test (replace APP_URL with your project URL):

    API_KEY=""
    APP_URL="https://www.mercuryworks.com"
    
  7. To run in a CI release, make sure to have an app setting/environment variable available for APP_URL

  8. With a terminal pointed to the basic-lighthouse-test directory, run with either yarn test or npm run test

Options

The runMercuryLighthouseReport Promise takes the following options:

interface IMercuryLighthouseReportOptions {
  accessibilityScoreMin?: number; // default is 90
  bestPracticesScoreMin?: number; // default is 90
  performanceScoreMin?: number; // default is 90
  pwaScoreMin?: number; // default is 90
  seoScoreMin?: number; // default is 90
  strategyType?: 'mobile' | 'desktop'; // default is 'mobile'
  timeout?: number; // default is 120000 (two minutes)
  url: string;
}

Publishing

  1. Run yarn build
  2. Login to npm locally with npm login
  3. Test publishing this package by running npm publish ./build --access public --dry-run
  4. Publish this package by running npm publish ./build --access public
  5. Verify the version updated at https://www.npmjs.com/package/@mercuryworks/lighthouse

Readme

Keywords

none

Package Sidebar

Install

npm i @mercuryworks/lighthouse

Weekly Downloads

0

Version

0.0.25

License

UNLICENSED

Unpacked Size

20.3 kB

Total Files

20

Last publish

Collaborators

  • kylebjones
  • zwinnie
  • mercuryworksops