Processor

Processor

Contains plugins to process CSS. Create one Processor instance, initialize its plugins, and then use that instance on numerous CSS files.

Constructor

new Processor(plugins)

Source:
Example
const processor = postcss([autoprefixer, precss]);
processor.process(css1).then(result => console.log(result.css));
processor.process(css2).then(result => console.log(result.css));
Parameters:
Name Type Description
plugins Array.<(Plugin|pluginFunction)> | Processor

PostCSS plugins. See Processor#use for plugin format.

Members

plugins :Array.<pluginFunction>

Source:

Plugins added to this processor.

Type:
Example
const processor = postcss([autoprefixer, precss]);
processor.plugins.length //=> 2

version :string

Source:

Current PostCSS version.

Type:
  • string
Example
if ( result.processor.version.split('.')[0] !== '5' ) {
  throw new Error('This plugin works only with PostCSS 5');
}

Methods

process(css, optsopt) → {LazyResult}

Source:

Parses source CSS and returns a LazyResult Promise proxy. Because some plugins can be asynchronous it doesn’t make any transformations. Transformations will be applied in the LazyResult methods.

Example
processor.process(css, { from: 'a.css', to: 'a.out.css' })
  .then(result => {
     console.log(result.css);
  });
Parameters:
Name Type Attributes Description
css string | toString | Result

String with input CSS or any object with a toString() method, like a Buffer. Optionally, send a Result instance and the processor will take the Root from it.

opts processOptions <optional>

options

Returns:

Promise proxy

Type
LazyResult

use(plugin) → {Processes}

Source:

Adds a plugin to be used as a CSS processor.

PostCSS plugin can be in 4 formats:

  • A plugin created by postcss.plugin method.
  • A function. PostCSS will pass the function a @{link Root} as the first argument and current Result instance as the second.
  • An object with a postcss method. PostCSS will use that method as described in #2.
  • Another Processor instance. PostCSS will copy plugins from that instance into this one.

Plugins can also be added by passing them as arguments when creating a postcss instance (see [postcss(plugins)]).

Asynchronous plugins should return a Promise instance.

Example
const processor = postcss()
  .use(autoprefixer)
  .use(precss);
Parameters:
Name Type Description
plugin Plugin | pluginFunction | Processor

PostCSS plugin or Processor with plugins

Returns:

current processor to make methods chain

Type
Processes