Project: unifiedjs/unified-engine

Package: unified-engine@10.1.0

  1. Dependents: 0
  2. Engine to process multiple files with unified
  1. unified 182
  2. processor 3
  3. engine 3


Build Coverage Downloads Sponsors Backers Chat

unified engine to process multiple files, lettings users configure from the file system.


What is this?

This package is the engine. It’s what you use underneath when you use remark-cli or a language server. Compared to unified, this deals with multiple files, often from the file system, and with configuration files and ignore files.

When should I use this?

You typically use something that wraps this, such as:

You can use this to make such things.


This package is ESM only. In Node.js (version 14.14+ or 16.0+), install with npm:

npm install unified-engine


The following example processes all files in the current directory with a markdown extension with remark, allows configuration from .remarkrc and package.json files, ignoring files from .remarkignore files, and more.

 * @typedef {import('unified-engine').Callback} Callback

import {engine} from 'unified-engine'
import {remark} from 'remark'

    processor: remark,
    files: ['.'],
    extensions: ['md', 'markdown', 'mkd', 'mkdn', 'mkdown'],
    pluginPrefix: 'remark',
    rcName: '.remarkrc',
    packageField: 'remarkConfig',
    ignoreName: '.remarkignore',
    color: true

/** @type {Callback} */
function done(error) {
  if (error) throw error


This package exports the identifier engine. There is no default export.

engine(options, callback)

Process files according to options and call callback when done.


function callback(error[, code, context])

Called when processing is complete, either with a fatal error if processing went horribly wrong (probably due to incorrect configuration on your part as a developer), or a status code and the processing context.



doc/plugins.md describes in detail how plugins can add more files to be processed and handle all transformed files.


doc/configure.md describes in detail how configuration files work.


doc/ignore.md describes in detail how ignore files work.


This package is fully typed with TypeScript. It additionally exports the following types:


Projects maintained by the unified collective are compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+ or 16.0+. Our projects sometimes work with older versions, but this is not guaranteed.


unified-engine loads and evaluates configuration files, plugins, and presets from the file system (often from node_modules/). That means code that is on your file system runs. Make sure you trust the workspace where you run unified-engine and be careful with packages from npm and changes made by contributors.


See contributing.md in unifiedjs/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.


MIT © Titus Wormer