{"id":19938,"library":"eslint-plugin-solid","title":"eslint-plugin-solid","description":"Solid-specific linting rules for ESLint. Current stable version is 0.14.5, released occasionally with community contributions. It eases Solid's learning curve by catching reactivity pitfalls and migrating React patterns. Differentiators include rules for Solid's reactive system, JSX, and destructuring. Supports ESLint v6–v9 and TypeScript. Actively maintained, approaching 1.0.0.","status":"active","version":"0.14.5","language":"javascript","source_language":"en","source_url":"https://github.com/solidjs-community/eslint-plugin-solid","tags":["javascript","eslint","eslintplugin","solid","solidjs","reactivity","typescript"],"install":[{"cmd":"npm install eslint-plugin-solid","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-solid","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-solid","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required for running rules","package":"eslint","optional":false},{"reason":"peer dependency (optional, for TypeScript rules)","package":"typescript","optional":true}],"imports":[{"note":"ESM is the modern approach; CJS require still works for older setups.","wrong":"const solid = require('eslint-plugin-solid')","symbol":"default","correct":"import solid from 'eslint-plugin-solid'"},{"note":"configs is a named export containing presets like 'recommended' and 'typescript'.","wrong":"import configs from 'eslint-plugin-solid'","symbol":"configs","correct":"import { configs } from 'eslint-plugin-solid'"},{"note":"rules is a named export containing all rule definitions.","wrong":null,"symbol":"rules","correct":"import { rules } from 'eslint-plugin-solid'"}],"quickstart":{"code":"// eslint.config.js (Flat Config)\nimport js from \"@eslint/js\";\nimport solid from \"eslint-plugin-solid\";\n\nexport default [\n  js.configs.recommended,\n  solid.configs.recommended,\n  {\n    files: [\"**/*.jsx\", \"**/*.tsx\"],\n    languageOptions: {\n      ecmaFeatures: { jsx: true }\n    }\n  }\n];\n","lang":"javascript","description":"Shows how to set up eslint-plugin-solid using flat config (ESLint v8.23+), extending recommended preset for JSX/TSX files."},"warnings":[{"fix":"Upgrade to eslint-plugin-solid@^0.14.0 or later.","message":"ESLint v9 support requires plugin version >=0.14.0.","severity":"breaking","affected_versions":"<0.14.0"},{"fix":"Remove the rule from your configuration; use 'no-undef' with JSX support instead.","message":"The 'jsx-no-undef' rule is deprecated and will be removed in v1.0.0.","severity":"deprecated","affected_versions":">=0.12.0"},{"fix":"Extend 'plugin:solid/typescript' instead of 'plugin:solid/recommended'.","message":"TypeScript users must use the 'typescript' config, not 'recommended'.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Upgrade to eslint-plugin-solid@^0.13.0 or later.","message":"Flat config requires plugin version >=0.13.0 for proper support.","severity":"gotcha","affected_versions":"<0.13.0"},{"fix":"Use 'plugin:solid/typescript' to automatically disable overlapping rules.","message":"The 'no-destructure' rule may conflict with some TypeScript patterns; use the TypeScript config to disable it.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install --save-dev eslint eslint-plugin-solid' or equivalent.","cause":"Missing or incorrect installation of eslint-plugin-solid.","error":"Error: Failed to load plugin 'solid' declared in '.eslintrc.*': Cannot find module 'eslint-plugin-solid'"},{"fix":"Ensure the plugin is installed and loaded correctly; use 'plugins: [\"solid\"]' in .eslintrc.","cause":"Using a configuration object that declares a string plugin name but the require fails.","error":"TypeError: eslint-plugin-solid is not a plugin"},{"fix":"Import solid from 'eslint-plugin-solid' and include it as an object with 'plugins: { solid }'.","cause":"Misconfigured flat config without properly importing the plugin object.","error":"ESLint configuration in eslint.config.js is invalid: Config (unnamed): The object must contain a 'plugins' key if it contains 'rules'."},{"fix":"Set 'parserOptions.ecmaFeatures.jsx: true' or use a JSX-aware parser like @typescript-eslint/parser.","cause":"Missing JSX parser options or parser configuration.","error":"Parsing error: Unexpected token <"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}