{"id":19745,"library":"eslint-plugin-eslint-config","title":"eslint-plugin-eslint-config","description":"ESLint plugin for linting ESLint configuration files, ensuring they are valid and consistent. Current stable version is 2.0.0, released January 2021, with a slow release cadence focused on bug fixes. Key differentiators: validates exported configs via execution, provides presets (recommended-rules, rc, all), and includes rules for deprecated/unknown rules and sorting. Requires ESLint >=5 and Node >=10, with peer dependency on eslint.","status":"maintenance","version":"2.0.0","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/g-rath/eslint-plugin-eslint-config","tags":["javascript","config","eslint","eslintplugin","eslint-plugin","eslintconfig","eslint-config"],"install":[{"cmd":"npm install eslint-plugin-eslint-config","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-eslint-config","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-eslint-config","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required for plugin functionality","package":"eslint","optional":false}],"imports":[{"note":"Plugin is typically used via the plugins array in ESLint config, not directly imported in code.","wrong":"const configPlugin = require('eslint-plugin-eslint-config'); // works but not needed if using plugins","symbol":"eslint-plugin-eslint-config","correct":"import configPlugin from 'eslint-plugin-eslint-config';\n// or use through plugins in .eslintrc.js:\nplugins: ['eslint-config']"},{"note":"The plugin exports a rules object; ESM import as above works, but CJS require is also common.","wrong":"const rules = require('eslint-plugin-eslint-config').rules; // common in CJS","symbol":"rules","correct":"import { rules } from 'eslint-plugin-eslint-config';\n// then access individual rules via rules['no-deprecated-rules']"},{"note":"Available since v1.0.0; configs are exported as named objects matching preset names with camelCase.","wrong":null,"symbol":"configs","correct":"import { configs } from 'eslint-plugin-eslint-config';\n// extend configs.recommendedRules or configs.rc in ESLint config"}],"quickstart":{"code":"// .eslintrc.js\nmodule.exports = {\n  plugins: ['eslint-config'],\n  overrides: [\n    {\n      files: ['.eslintrc.js', 'my-config.js'],\n      rules: {\n        'eslint-config/no-deprecated-rules': 'warn',\n        'eslint-config/no-invalid-config': 'error',\n        'eslint-config/no-unknown-rules': 'error',\n        'eslint-config/sort-rules': 'warn'\n      }\n    }\n  ]\n};","lang":"javascript","description":"Enables eslint-plugin-eslint-config in an ESLint config file, applying rules to ESLint config files."},"warnings":[{"fix":"Upgrade Node to v10 or higher.","message":"Dropped support for Node 8 in v2.0.0.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Ensure @typescript-eslint packages are compatible; if using TypeScript, update to match.","message":"Updated @typescript-eslint/experimental-utils to v4 in v2.0.0, potentially breaking TypeScript users.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use 'recommended-rules' or 'rc' instead for stable base.","message":"The 'all' preset may change in any release; not recommended for long-term consistency.","severity":"deprecated","affected_versions":"*"},{"fix":"Use overrides to limit rules to ESLint config files only.","message":"Rules execute the config files they lint; can trigger side effects. Should only be applied to specific files via overrides.","severity":"gotcha","affected_versions":"*"},{"fix":"Set plugins: ['eslint-config'] in your ESLint config.","message":"Plugin name must be 'eslint-config' (without 'eslint-plugin-') in plugins array, or 'eslint-config' as a string.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Add 'eslint-config' to plugins array and ensure eslint-plugin-eslint-config is installed.","cause":"Plugin name in plugins array is misspelled or missing.","error":"ESLint configuration is invalid: \"eslint-config\" is not a known plugin."},{"fix":"Run npm install --save-dev eslint-plugin-eslint-config or yarn add --dev eslint-plugin-eslint-config.","cause":"Package not installed or ESLint cannot locate it.","error":"Plugin package 'eslint-plugin-eslint-config' not found."},{"fix":"Verify plugin is installed and added to plugins array, then use rule as 'eslint-config/no-deprecated-rules'.","cause":"Using the rule with a missing or misconfigured plugin.","error":"Cannot read property 'no-deprecated-rules' of undefined"},{"fix":"Use configs.rc or extend 'plugin:eslint-config/rc' from ESLint config (note: 'eslint-config' is the plugin prefix).","cause":"Extending a preset that doesn't exist or wrong path.","error":"ESLint configuration is invalid: \"eslint-config/rc\" invalid preset."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}