eslint-plugin-solid

raw JSON →
0.14.5 verified Sat Apr 25 auth: no javascript

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.

error Error: Failed to load plugin 'solid' declared in '.eslintrc.*': Cannot find module 'eslint-plugin-solid'
cause Missing or incorrect installation of eslint-plugin-solid.
fix
Run 'npm install --save-dev eslint eslint-plugin-solid' or equivalent.
error TypeError: eslint-plugin-solid is not a plugin
cause Using a configuration object that declares a string plugin name but the require fails.
fix
Ensure the plugin is installed and loaded correctly; use 'plugins: ["solid"]' in .eslintrc.
error ESLint configuration in eslint.config.js is invalid: Config (unnamed): The object must contain a 'plugins' key if it contains 'rules'.
cause Misconfigured flat config without properly importing the plugin object.
fix
Import solid from 'eslint-plugin-solid' and include it as an object with 'plugins: { solid }'.
error Parsing error: Unexpected token <
cause Missing JSX parser options or parser configuration.
fix
Set 'parserOptions.ecmaFeatures.jsx: true' or use a JSX-aware parser like @typescript-eslint/parser.
breaking ESLint v9 support requires plugin version >=0.14.0.
fix Upgrade to eslint-plugin-solid@^0.14.0 or later.
deprecated The 'jsx-no-undef' rule is deprecated and will be removed in v1.0.0.
fix Remove the rule from your configuration; use 'no-undef' with JSX support instead.
gotcha TypeScript users must use the 'typescript' config, not 'recommended'.
fix Extend 'plugin:solid/typescript' instead of 'plugin:solid/recommended'.
gotcha Flat config requires plugin version >=0.13.0 for proper support.
fix Upgrade to eslint-plugin-solid@^0.13.0 or later.
gotcha The 'no-destructure' rule may conflict with some TypeScript patterns; use the TypeScript config to disable it.
fix Use 'plugin:solid/typescript' to automatically disable overlapping rules.
npm install eslint-plugin-solid
yarn add eslint-plugin-solid
pnpm add eslint-plugin-solid

Shows how to set up eslint-plugin-solid using flat config (ESLint v8.23+), extending recommended preset for JSX/TSX files.

// eslint.config.js (Flat Config)
import js from "@eslint/js";
import solid from "eslint-plugin-solid";

export default [
  js.configs.recommended,
  solid.configs.recommended,
  {
    files: ["**/*.jsx", "**/*.tsx"],
    languageOptions: {
      ecmaFeatures: { jsx: true }
    }
  }
];