eslint-index
Version:
CLI for finding and managing rules in ESLint config files
99 lines (72 loc) • 3.91 kB
Markdown
# ![ESLint][eslint-logo] ESLint Index
> CLI for finding and managing rules in ESLint config files
List all the rules!
![Demo 1][demo-1]
Then count them, or create a pretty table!
![Demo 2][demo-2]
## Installation
```bash
npm install eslint-index --save-dev
```
## Usage
```bash
eslint-index path/to/.eslintrc [options]
```
This package is intended to be used as a _local_ utility.
It needs both `eslint` and the `eslint-plugins` referenced in the `.eslintrc.*` config file, to be installed alongside it.
Using it as a _global_ utility will throw an error if `eslint` and the `eslint-plugins` referenced in the `.eslintrc.*` config file are not installed globally.
It is recommended that you use it within your `package.json` scripts:
```
"scripts": {
"list-rules": "eslint-index .eslintrc",
"count-rules": "eslint-index .eslintrc --format number",
"table-rules": "eslint-index .eslintrc --format table",
"list-rules-with-docs": "eslint-index .eslintrc --docs",
"list-eslint-rules": "eslint-index .eslintrc --groups eslint",
"list-disabled-rules": "eslint-index .eslintrc --status omitted off"
}
```
Alternatively, you can add `./node_modules/.bin` to your `$PATH`.
This will allow you to use any node binaries within your project:
```
» cd some-project-with-eslint-index-installed
» which eslint-index
./node_modules/.bin/eslint-index
» eslint-index .eslintrc --format table
┌──────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│ │ total │ omitted │ off │ warn │ error │
├──────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ eslint │ 233 │ 0 │ 29 │ 2 │ 202 │
├──────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ react │ 53 │ 4 │ 0 │ 0 │ 49 │
└──────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
```
## Options
Option | Alias | Description | Arg Type | Arg Options
------------|-------|------------------------------|-----------------|------------
`--help` | `-h` | Display help | `Boolean` | `N/A`
`--docs` | `-d` | Display docs alongside rules | `Boolean` | `N/A`
`--format` | `-f` | Format rules | `String` | `list|table|number`
`--status` | `-s` | Filter rules by status | `Array<String>` | `omitted|off|warn|error`
`--groups` | `-g` | Filter rules by group/plugin | `Array<String>` | `eslint|plugin eg. react`
`--include` | `-i` | Filter rules by id | `Array<String>` | `rule-id-one rule-id-two`
`--exclude` | `-e` | Reject rules by id | `Array<String>` | `rule-id-one rule-id-two`
## Examples
```bash
eslint-index .eslintrc --format table
eslint-index .eslintrc --format number
eslint-index .eslintrc --status omitted off
eslint-index .eslintrc --status warn error
eslint-index .eslintrc --groups eslint react
eslint-index .eslintrc --groups eslint --status warn error
eslint-index .eslintrc --groups eslint --status warn error --format number
eslint-index .eslintrc --include semi curly
eslint-index .eslintrc --exclude semi curly
eslint-index .eslintrc --docs
eslint-index .eslintrc --groups eslint react --docs
```
## Author
Matthew Wagerfield [@wagerfield](http://twitter.com/wagerfield)
[eslint-logo]: assets/eslint-logo.png
[demo-1]: assets/demo-1.gif
[demo-2]: assets/demo-2.gif