post-sequence
Version:
A sequence for configuration posthtml and postcss plugins
91 lines (72 loc) • 3.53 kB
Markdown
# post-sequence
> Sequence for configuration [posthtml](https://github.com/posthtml) and [postcss](https://github.com/postcss), sorts the configuration file based on the internal configurator.
[](https://travis-ci.org/post/post-sequence)[](https://ci.appveyor.com/project/post/post-sequence)[]()[](https://www.npmjs.com/package/post-sequence)[](https://david-dm.org/post/post-sequence)[](https://github.com/sindresorhus/xo)[](https://coveralls.io/r/post/post-sequence)
[](https://www.npmjs.com/package/post-sequence)[](https://www.npmjs.com/package/post-sequence)[](http://packagequality.com/#?package=post-sequence)
## Why?
Saves you from possible errors in the processing due to wrong wiring sequence plug-ins. You just pass in a configuration object of your processor, type of processor and reappointment or extension for internal configurator.
## Install
```bash
$ npm i -S post-sequence
```
> **Note:** This project is compatible with node v8+
## Usage
```js
import sequence from 'post-sequence';
const posthtmlConfig = {
'posthtml-bem': {
elemPrefix: '__',
modPrefix: '-',
modDlmtr: '--'
},
'posthtml-include': {
root: './',
encoding: 'utf-8'
},
'posthtml-style-to-file': {
path: './dist/style.css'
}
};
sequence(posthtmlConfig, {processor: 'posthtml', extend: [2, 'posthtml-style-to-file']});
// Return ==> {"posthtml-include": {...}, "posthtml-style-to-file": {...}, "posthtml-bem": {...}}
```
Returns your config sorted according to the internal configuration or according to the extended.
## posthtml configuration sequence
<img align="left" width="95" height="130" title="PostHTML" src="http://posthtml.github.io/posthtml/logo.svg">
```json
[
"posthtml-include",
"posthtml-modules",
"posthtml-inline-assets",
"posthtml-inline-css",
"posthtml-beautify"
]
```
## postcss configuration sequence
<img align="left" width="95" height="95" title="PostCSS" src="http://postcss.github.io/postcss/logo.svg">
```json
[
"postcss-devtools",
"postcss-easy-import",
"postcss-import",
"postcss-each",
"postcss-mixins",
"postcss-at-rules-variables",
"postcss-custom-properties",
"postcss-for",
"postcss-conditionals",
"postcss-nested",
"postcss-sorting",
"postcss-style-guide",
"postcss-discard-comments",
"postcss-csso"
]
```
## Options
#### `processor`
Type: `string<posthtml|postcss>`
Default: ``
#### `extend`
Type: `array<array>`
Default: `[]`
Value: `[index, ['plugin-name', ...]]`
*To determine the correct index, see the [config](https://github.com/post/post-sequence/blob/master/src/sequence-config.js)*