npm.io
2.1.7 • Published 3d ago

metalsmith-tracer

Licence
GPL-3.0-or-later
Version
2.1.7
Deps
4
Size
52 kB
Vulns
0
Weekly
0
Stars
1

metalsmith-tracer

npm: version npm: downloads

Snyk: vulnerabilities codecov: coverage license

A tool to automatically trace and measure Metalsmith build time.

The Metalsmith build process has no progress output to indicate how many plugins have been processed and how many more are left. Build pipelines with a lot of plugins can take a long time to finish, and it's very difficult to know which plugins take the most time. This package is a wrapper around Metalsmith that outputs meaningful build progress.

Here is an example console output when wrapped around the metalsmith/startbootstrap-clean-blog example:

------- Build process started -------

  4.7ms (unnamed)
 32.5ms (unnamed)
  2.3ms @metalsmith/collections
  0.4ms metalsmith.js
511.9ms @metalsmith/layouts
   1.8s @metalsmith/sass
  0.3ms metalsmith.js

   2.4s Total build time

Build finished

Installation

npm install --save metalsmith-tracer

JavaScript Usage

metalsmith-tracer wraps the root metalsmith call:

import Metalsmith from 'metalsmith';
import tracer from 'metalsmith-tracer';

tracer(Metalsmith(__dirname), {
        // options here
    })
    // .use() every build plugin
    .build((err) => {
        if (err) {
            throw err;
        }
    });

Options

log (optional)

Type: (...data: unknown[]) => void Default: console.log

The logger function.

Limitations

  • setImmediate()

    Plugins that use setImmediate() to call their done callback will not print their real name due to how metalsmith-tracer uses the call stack.

  • metalsmith-if

    Using metalsmith-if will mask the name of the plugin actually being used.

Changelog

Changelog

Keywords