postcss-devtools

Log execution time for each plugin in a PostCSS instance.

Usage no npm install needed!

<script type="module">
  import postcssDevtools from 'https://cdn.skypack.dev/postcss-devtools';
</script>

README

postcss-devtools Build Status NPM version

Log execution time for each plugin in a PostCSS instance.

Install

With npm do:

npm install postcss-devtools --save-dev

Example

Load postcss-devtools into a PostCSS instance and it will wrap each plugin with a function that logs the time taken for the plugin to perform its required task. Note that this plugin must be used with the asynchronous API:

var postcss = require('postcss');
var devtools = require('postcss-devtools');
var autoprefixer = require('autoprefixer');

var css = 'h1 { color: red }';

postcss([devtools(), autoprefixer()]).process(css).then(function (result) {
    console.log('Done.');
});

//=> autoprefixer  37 ms
//=> Done.

API

devtools([options])

options

precise

Type: boolean
Default: false

This adds extra precision to the times that are reported.

silent

Type: boolean
Default: false

Set this to true to use your own logger for the output of this module.

devtools.printSummary()

Print a summary spanning across all files. Note that you should set opts.silent to true to avoid outputting more than is necessary when calling this function.

var postcss = require('postcss');
var devtools = require('postcss-devtools')({silent: true}); // disable summary for each css file
var autoprefixer = require('autoprefixer');

var cssOne = 'h1 { color: red }';
var cssTwo = 'h1 { color: blue }';
// View a summary for all plugins across all css files
Promise.all(
  postcss([devtools, autoprefixer()]).process(cssOne),
  postcss([devtools, autoprefixer()]).process(cssTwo)
).then(() => {
  console.log('Done.');
  devtools.printSummary();
});
//=> Done.
//=> Summary
//=> autoprefixer  73 ms

Usage

See the PostCSS documentation for examples for your environment.

Contributing

Pull requests are welcome. If you add functionality, then please add unit tests to cover it.

License

MIT © Ben Briggs