{"id":25002,"library":"biome-plugin-solidjs","title":"Biome Plugin for SolidJS","description":"Biome GritQL lint rules for SolidJS that catch common reactivity bugs at lint time, such as destructured props, .map() in JSX, memo in loops, top-level effects, and stored JSX. Current stable version is 0.2.2, with regular bugfix and minor feature releases. Designed as a lightweight alternative to eslint-plugin-solid that integrates directly into Biome's plugin system using GritQL pattern matching, requiring no TypeScript type inference. Opt-in rule solid-no-object-signal-without-equals is not enabled by default due to potential false positives.","status":"active","version":"0.2.2","language":"javascript","source_language":"en","source_url":"https://github.com/tommymorgan/biome-plugin-solidjs","tags":["javascript","biome","gritql","solidjs","solid-js","lint","plugin","reactivity"],"install":[{"cmd":"npm install biome-plugin-solidjs","lang":"bash","label":"npm"},{"cmd":"yarn add biome-plugin-solidjs","lang":"bash","label":"yarn"},{"cmd":"pnpm add biome-plugin-solidjs","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Runtime peer dependency — the plugin is loaded into Biome >=2.0.0 as a GritQL plugin.","package":"@biomejs/biome","optional":false}],"imports":[{"note":"This package does not export JavaScript modules; it provides GritQL rule files. Add it to the plugins array in biome.json(c).","wrong":"import { biomePluginSolidjs } from 'biome-plugin-solidjs'","symbol":"biome-plugin-solidjs (as plugin path)","correct":"import { plugins } from 'biome.jsonc' and use \"./node_modules/biome-plugin-solidjs\""},{"note":"Rules are not imported individually; enabling the plugin via manifest enables default rules. For opt-in rules, include the .grit file path.","wrong":"import { solidNoDestructuredProps } from 'biome-plugin-solidjs'","symbol":"solid-no-destructured-props rule","correct":"Add \"./node_modules/biome-plugin-solidjs\" to plugins array in biome.json(c)."},{"note":"Opt-in rules must reference the .grit file explicitly. Use the same path style as the main plugin path.","wrong":"\"biome-plugin-solidjs/rules/solid-no-object-signal-without-equals\"","symbol":"Opt-in rule file (e.g., solid-no-object-signal-without-equals)","correct":"\"./node_modules/biome-plugin-solidjs/rules/solid-no-object-signal-without-equals.grit\""}],"quickstart":{"code":"// 1. Install the plugin\nnpm install -D biome-plugin-solidjs\n\n// 2. Create or update biome.json with:\n{\n  \"plugins\": [\"./node_modules/biome-plugin-solidjs\"]\n}\n\n// 3. (Optional) Add the opt-in rule for object signals without equals:\n{\n  \"plugins\": [\"./node_modules/biome-plugin-solidjs\", \"./node_modules/biome-plugin-solidjs/rules/solid-no-object-signal-without-equals.grit\"]\n}\n\n// 4. Lint your SolidJS project:\nnpm exec biome lint .","lang":"javascript","description":"Setup and usage of the Biome SolidJS plugin showing installation, biome.json configuration with both default and opt-in rules, and running the linter."},"warnings":[{"fix":"Only enable this rule if you understand its limitation and can suppress false positives.","message":"The opt-in rule solid-no-object-signal-without-equals is not enabled by default due to potential false positives with set-once-then-clear patterns.","severity":"gotcha","affected_versions":">=0.2.2"},{"fix":"For type-aware linting, consider using eslint-plugin-solid alongside this plugin.","message":"Core rules use structural heuristics and do not use TypeScript type information, so they may miss some bugs or produce false positives.","severity":"gotcha","affected_versions":">=0.2.0"},{"fix":"Ensure you have @biomejs/biome >=2.0.0 installed and that Biome's plugin feature is enabled.","message":"The plugin requires Biome >=2.0.0 with GritQL plugin support. Older versions of Biome or other linters are not supported.","severity":"gotcha","affected_versions":">=0.2.0"},{"fix":"Update to v0.2.1+ to avoid false positives on non-nullable object signals.","message":"In v0.2.1, the rule solid-no-object-signal-without-equals was narrowed to only flag nullable object types; array signals and standalone object types are no longer flagged.","severity":"deprecated","affected_versions":">=0.2.0 <0.2.1"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use \"./node_modules/biome-plugin-solidjs\" instead of just \"biome-plugin-solidjs\".","cause":"The plugin is referenced incorrectly in biome.json. Users often omit the ./node_modules/ prefix or use wrong path.","error":"Biome configuration error: Plugin 'biome-plugin-solidjs' not found"},{"fix":"Do not import in JS/TS files. Add the path to the plugins array in biome.json.","cause":"Attempting to require/import the plugin as a JavaScript module, which is not how Biome plugins work.","error":"Cannot find module 'biome-plugin-solidjs'"},{"fix":"Add \"./node_modules/biome-plugin-solidjs/rules/solid-no-object-signal-without-equals.grit\" to the plugins array.","cause":"The rule is opt-in and must be explicitly included in the plugins array as a .grit file path.","error":"GritQL rule error: solid-no-object-signal-without-equals is not a valid rule"},{"fix":"Upgrade @biomejs/biome to >=2.0.0.","cause":"Installed @biomejs/biome version is older than 2.0.0, which lacks GritQL plugin support.","error":"The biome engine is not compatible with this plugin (requires biome >= 2.0.0)"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}