Skip to content
This repository has been archived by the owner on Feb 21, 2023. It is now read-only.
/ metalsmith-tracer Public archive

A tool to automatically trace and measure Metalsmith build time.

License

Notifications You must be signed in to change notification settings

emmercm/metalsmith-tracer

Repository files navigation

metalsmith-tracer

⚠️ This repistory has been moved to metalsmith-plugins. ⚠️

npm Version npm Weekly Downloads

Known Vulnerabilities Test Coverage Maintainability

GitHub 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 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

This plugin requires ES6 syntax.

metalsmith-tracer wraps the root metalsmith call:

import path from 'path';

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

tracer(Metalsmith(path.resolve()), {
        // options here
    })
    .build((err) => {
        if (err) {
            throw err;
        }
    });

Options

log (optional)

Type: function(string) 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

About

A tool to automatically trace and measure Metalsmith build time.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published