Package Exports
- eslint-plugin-eslint-plugin
- eslint-plugin-eslint-plugin/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-eslint-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
eslint-plugin-eslint-plugin

An ESLint plugin for linting ESLint plugins. Rules written in CJS, ESM, and TypeScript are all supported.
Installation
You'll first need to install ESLint:
npm i eslint --save-dev
Next, install eslint-plugin-eslint-plugin
:
npm install eslint-plugin-eslint-plugin --save-dev
Usage
Here's an example ESLint configuration that:
- Sets
sourceType
toscript
for CJS plugins (most users) (usemodule
for ESM/TypeScript) - Enables the
recommended
configuration - Enables an optional/non-recommended rule
{
"parserOptions": {
"sourceType": "script"
},
"extends": [
"plugin:eslint-plugin/recommended"
],
"rules": {
"eslint-plugin/require-meta-docs-description": "error"
}
}
Rules
- ✔️ if the rule belongs to the
recommended
configuration - 🛠 if some problems reported by the rule are automatically fixable by the
--fix
command line option - 💡 if some problems reported by the rule are manually fixable by editor suggestions
Name | ✔️ | 🛠 | 💡 | Description |
---|---|---|---|---|
consistent-output | ✔️ | enforce consistent use of output assertions in rule tests |
||
fixer-return | ✔️ | require fixer functions to return a fix | ||
meta-property-ordering | 🛠 | enforce the order of meta properties | ||
no-deprecated-context-methods | ✔️ | 🛠 | disallow usage of deprecated methods on rule context objects | |
no-deprecated-report-api | ✔️ | 🛠 | disallow the version of context.report() with multiple arguments |
|
no-identical-tests | ✔️ | 🛠 | disallow identical tests | |
no-missing-message-ids | disallow messageId s that are missing from meta.messages |
|||
no-missing-placeholders | ✔️ | disallow missing placeholders in rule report messages | ||
no-only-tests | ✔️ | 💡 | disallow the test case property only |
|
no-unused-message-ids | disallow unused messageId s in meta.messages |
|||
no-unused-placeholders | ✔️ | disallow unused placeholders in rule report messages | ||
no-useless-token-range | ✔️ | 🛠 | disallow unnecessary calls to sourceCode.getFirstToken() and sourceCode.getLastToken() |
|
prefer-message-ids | require using messageId instead of message to report rule violations |
|||
prefer-object-rule | ✔️ | 🛠 | disallow rule exports where the export is a function | |
prefer-output-null | 🛠 | disallow invalid RuleTester test cases where the output matches the code |
||
prefer-placeholders | require using placeholders for dynamic report messages | |||
prefer-replace-text | require using replaceText() instead of replaceTextRange() |
|||
report-message-format | enforce a consistent format for rule report messages | |||
require-meta-docs-description | require rules to implement a meta.docs.description property with the correct format |
|||
require-meta-docs-url | 🛠 | require rules to implement a meta.docs.url property |
||
require-meta-fixable | ✔️ | require rules to implement a meta.fixable property |
||
require-meta-has-suggestions | ✔️ | 🛠 | require suggestable rules to implement a meta.hasSuggestions property |
|
require-meta-schema | ✔️ | 💡 | require rules to implement a meta.schema property |
|
require-meta-type | ✔️ | require rules to implement a meta.type property |
||
test-case-property-ordering | 🛠 | require the properties of a test case to be placed in a consistent order | ||
test-case-shorthand-strings | 🛠 | enforce consistent usage of shorthand strings for test cases with no options |
Presets
Name | Description | |
---|---|---|
✔️ | recommended |
enables all recommended rules in this plugin |
rules-recommended |
enables all recommended rules that are aimed at linting ESLint rule files | |
tests-recommended |
enables all recommended rules that are aimed at linting ESLint test files | |
all |
enables all rules in this plugin | |
rules |
enables all rules that are aimed at linting ESLint rule files | |
tests |
enables all rules that are aimed at linting ESLint test files |
Semantic versioning policy
The list of recommended rules will only change in a major release of this plugin. However, new non-recommended rules might be added in a minor release of this plugin. Therefore, using the all
, rules
, and tests
presets is not recommended for production use, because the addition of new rules in a minor release could break your build.
Preset usage
Presets are enabled by adding a line to the extends
list in your config file. For example, to enable the recommended
preset, use:
{
"extends": [
"plugin:eslint-plugin/recommended"
]
}
Or to apply linting only to the appropriate rule or test files:
{
"overrides": [
{
"files": ["lib/rules/*.{js,ts}"],
"extends": ["plugin:eslint-plugin/rules-recommended"]
},
{
"files": ["tests/lib/rules/*.{js,ts}"],
"extends": ["plugin:eslint-plugin/tests-recommended"]
},
]
}