preload-links-by-lighthouse

Generate html with embedded preload links using lighthouse

Usage no npm install needed!

<script type="module">
  import preloadLinksByLighthouse from 'https://cdn.skypack.dev/preload-links-by-lighthouse';
</script>

README

preload-links-by-lighthouse

Generate html with embedded preload links using lighthouse

Installation

$ npm i @mizdra/preload-links-by-lighthouse

Usage

import { auditNetworkRequest, filterByScript, generatePreloadLinks } from '@mizdra/preload-links-by-lighthouse';

(async () => {
  const networkRecords = await auditNetworkRequest('https://web.dev/', {
    // pass the lighthouse options (optional)
    logLevel: 'info',
  });
  const filteredNetworkRecords = networkRecords.filter(filterByScript);
  const html = generatePreloadLinks({ networkRecords: filteredNetworkRecords });
  console.log(html);
  // output:
  // <link rel="preload" href="https://web.dev/js/app.js?v=1d84cab8" as="script">
  // <link rel="preload" href="https://web.dev/js/default.js?v=d79b36fb" as="script">
  // <link rel="preload" href="https://www.google-analytics.com/analytics.js" as="script">
  // <link rel="preload" href="https://web.dev/js/index-725dce56.js" as="script">
  // <link rel="preload" href="https://web.dev/js/actions-2a4a4fee.js" as="script">
  // <link rel="preload" href="https://www.gstatic.com/firebasejs/6.6.1/firebase-app.js" as="script">
  // <link rel="preload" href="https://www.gstatic.com/firebasejs/6.6.1/firebase-auth.js" as="script">
  // <link rel="preload" href="https://www.gstatic.com/firebasejs/6.6.1/firebase-performance.js" as="script">
})().catch((err) => {
  console.error(err);
  process.exit(1);
});

Examples

See examples/.

For Maintainers

How to dev

  • yarn run start: Run for production
  • yarn run build: Build for production
  • yarn run dev: Run for development
  • yarn run check: Try static-checking

How to release

$ # Wait for passing CI...
$ git switch master
$ git pull
$ yarn version
$ rm -rf dist && yarn run build
$ npm publish
$ git push --follow-tags