An ESLint plugin that provides a set of rules for linting ESLint plugins themselves. It helps plugin authors follow best practices, avoid deprecated APIs, and maintain consistency in meta properties and tests. As of v7.3.2, it requires ESLint >=9.0.0 and Node >=20.19.0. Version 7 broke compatibility with ESLint v8 and flat config prefixes. It supports CJS, ESM, and TypeScript plugin source files. Ships with recommended configs and autofix rules. Maintained under the eslint-community organization.
npm install eslint-plugin-eslint-pluginVerified import paths — ran on the pinned version, not inferred.
Flat config example using the plugin's recommended preset and enabling a specific rule.
Upgrade to ESLint >=9.0.0 and use flat config. Use eslintPlugin.configs.recommended instead of eslint-plugin-eslint-plugin/flat/recommended.
If you were explicitly disabling these rules, you may need to adjust your config. Check the recommended preset: it now includes them.
Use import or dynamic import(). If you need CJS, stick to v6.x.
Use context.sourceCode.getText() instead of context.getSource(), context.filename instead of context.getFilename(), etc.
When using flat config, assign the import to a variable and use that variable name as the plugin prefix in rule names.
Upgrade Node to >=18.18.0 or use older plugin version.
Use import() or switch to an ESM config file (e.g., rename eslint.config.js to eslint.config.mjs).
Use: import eslintPlugin from 'eslint-plugin-eslint-plugin'; then add eslintPlugin.configs.recommended (or { plugins: { 'eslint-plugin': eslintPlugin } }).Check the list of rules in the docs. For v7, ensure the rule name is correct (e.g., 'require-meta-docs-description' still exists).
Run: npm install eslint-plugin-eslint-plugin --save-dev