Biome Plugin for SolidJS
raw JSON → 0.2.2 verified Fri May 01 auth: no javascript
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.
Common errors
error Biome configuration error: Plugin 'biome-plugin-solidjs' not found ↓
cause The plugin is referenced incorrectly in biome.json. Users often omit the ./node_modules/ prefix or use wrong path.
fix
Use "./node_modules/biome-plugin-solidjs" instead of just "biome-plugin-solidjs".
error Cannot find module 'biome-plugin-solidjs' ↓
cause Attempting to require/import the plugin as a JavaScript module, which is not how Biome plugins work.
fix
Do not import in JS/TS files. Add the path to the plugins array in biome.json.
error GritQL rule error: solid-no-object-signal-without-equals is not a valid rule ↓
cause The rule is opt-in and must be explicitly included in the plugins array as a .grit file path.
fix
Add "./node_modules/biome-plugin-solidjs/rules/solid-no-object-signal-without-equals.grit" to the plugins array.
error The biome engine is not compatible with this plugin (requires biome >= 2.0.0) ↓
cause Installed @biomejs/biome version is older than 2.0.0, which lacks GritQL plugin support.
fix
Upgrade @biomejs/biome to >=2.0.0.
Warnings
gotcha 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. ↓
fix Only enable this rule if you understand its limitation and can suppress false positives.
gotcha Core rules use structural heuristics and do not use TypeScript type information, so they may miss some bugs or produce false positives. ↓
fix For type-aware linting, consider using eslint-plugin-solid alongside this plugin.
gotcha The plugin requires Biome >=2.0.0 with GritQL plugin support. Older versions of Biome or other linters are not supported. ↓
fix Ensure you have @biomejs/biome >=2.0.0 installed and that Biome's plugin feature is enabled.
deprecated 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. ↓
fix Update to v0.2.1+ to avoid false positives on non-nullable object signals.
Install
npm install biome-plugin-solidjs yarn add biome-plugin-solidjs pnpm add biome-plugin-solidjs Imports
- biome-plugin-solidjs (as plugin path) wrong
import { biomePluginSolidjs } from 'biome-plugin-solidjs'correctimport { plugins } from 'biome.jsonc' and use "./node_modules/biome-plugin-solidjs" - solid-no-destructured-props rule wrong
import { solidNoDestructuredProps } from 'biome-plugin-solidjs'correctAdd "./node_modules/biome-plugin-solidjs" to plugins array in biome.json(c). - Opt-in rule file (e.g., solid-no-object-signal-without-equals) wrong
"biome-plugin-solidjs/rules/solid-no-object-signal-without-equals"correct"./node_modules/biome-plugin-solidjs/rules/solid-no-object-signal-without-equals.grit"
Quickstart
// 1. Install the plugin
npm install -D biome-plugin-solidjs
// 2. Create or update biome.json with:
{
"plugins": ["./node_modules/biome-plugin-solidjs"]
}
// 3. (Optional) Add the opt-in rule for object signals without equals:
{
"plugins": ["./node_modules/biome-plugin-solidjs", "./node_modules/biome-plugin-solidjs/rules/solid-no-object-signal-without-equals.grit"]
}
// 4. Lint your SolidJS project:
npm exec biome lint .