Claude-skill-registry biome-configuration
Use when biome configuration including biome.json setup, schema versions, VCS integration, and project organization.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/biome-configuration" ~/.claude/skills/majiayu000-claude-skill-registry-biome-configuration && rm -rf "$T"
skills/data/biome-configuration/SKILL.mdBiome Configuration
Master Biome configuration including biome.json setup, schema versions, VCS integration, and project organization for optimal JavaScript/TypeScript tooling.
Overview
Biome is a fast, modern toolchain for JavaScript and TypeScript projects that combines linting and formatting in a single tool. It's designed as a performant alternative to ESLint and Prettier, written in Rust for maximum speed.
Installation and Setup
Basic Installation
Install Biome in your project:
npm install --save-dev @biomejs/biome # or pnpm add -D @biomejs/biome # or yarn add -D @biomejs/biome
Initialize Configuration
Create a basic biome.json configuration:
npx biome init
This creates a
biome.json file in your project root.
Configuration File Structure
Basic biome.json
{ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, "files": { "ignoreUnknown": false, "ignore": [] }, "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 80 }, "linter": { "enabled": true, "rules": { "recommended": true } }, "javascript": { "formatter": { "quoteStyle": "single", "trailingCommas": "es5" } } }
Schema Versioning
Always use the correct schema version matching your Biome installation:
# Check Biome version npx biome --version # Migrate configuration to current version npx biome migrate --write
The
$schema field enables IDE autocomplete and validation:
{ "$schema": "https://biomejs.dev/schemas/2.3.6/schema.json" }
VCS Integration
Configure version control integration to respect .gitignore:
{ "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true, "defaultBranch": "main" } }
Options:
: Enable VCS integrationenabled
: "git" for Git repositoriesclientKind
: Respect .gitignore patternsuseIgnoreFile
: Default branch name for operationsdefaultBranch
File Management
File Patterns
Control which files Biome processes:
{ "files": { "ignoreUnknown": false, "ignore": [ "**/node_modules/**", "**/dist/**", "**/.next/**", "**/build/**", "**/.cache/**" ], "include": ["src/**/*.ts", "src/**/*.tsx"] } }
Common Ignore Patterns
{ "files": { "ignore": [ "**/node_modules/", "**/dist/", "**/build/", "**/.next/", "**/.cache/", "**/coverage/", "**/*.min.js", "**/*.log" ] } }
Formatter Configuration
Basic Formatter Settings
{ "formatter": { "enabled": true, "formatWithErrors": false, "indentStyle": "space", "indentWidth": 2, "lineEnding": "lf", "lineWidth": 80 } }
Options:
: Enable/disable formatterenabled
: Format even with syntax errorsformatWithErrors
: "space" or "tab"indentStyle
: Number of spaces (2 or 4 recommended)indentWidth
: "lf", "crlf", or "cr"lineEnding
: Maximum line lengthlineWidth
Language-Specific Formatting
JavaScript/TypeScript
{ "javascript": { "formatter": { "quoteStyle": "single", "quoteProperties": "asNeeded", "trailingCommas": "all", "semicolons": "always", "arrowParentheses": "always", "bracketSpacing": true, "bracketSameLine": false } } }
JSON
{ "json": { "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 80, "trailingCommas": "none" } } }
Linter Configuration
Enable Recommended Rules
{ "linter": { "enabled": true, "rules": { "recommended": true } } }
Rule Categories
Configure specific rule groups:
{ "linter": { "enabled": true, "rules": { "recommended": true, "a11y": { "recommended": true }, "complexity": { "recommended": true }, "correctness": { "recommended": true }, "performance": { "recommended": true }, "security": { "recommended": true }, "style": { "recommended": true }, "suspicious": { "recommended": true } } } }
Fine-Grained Rule Control
Enable or disable specific rules:
{ "linter": { "rules": { "recommended": true, "suspicious": { "noExplicitAny": "error", "noConsoleLog": "warn" }, "style": { "useConst": "error", "noVar": "error" } } } }
Rule levels:
: Disable rule"off"
: Show warning"warn"
: Fail check"error"
Monorepo Configuration
Root Configuration
{ "$schema": "https://biomejs.dev/schemas/2.3.6/schema.json", "extends": [], "files": { "ignore": ["**/node_modules/", "**/dist/"] }, "formatter": { "enabled": true, "indentWidth": 2 }, "linter": { "enabled": true, "rules": { "recommended": true } } }
Package-Specific Overrides
Each package can have its own biome.json:
{ "$schema": "https://biomejs.dev/schemas/2.3.6/schema.json", "extends": ["../../biome.json"], "linter": { "rules": { "suspicious": { "noConsoleLog": "off" } } } }
Best Practices
- Use Schema URLs - Always include
for IDE support$schema - Version Management - Run
after updatesbiome migrate - VCS Integration - Enable VCS to respect .gitignore
- Consistent Formatting - Set clear formatter rules across team
- Rule Documentation - Document why specific rules are disabled
- Monorepo Strategy - Use extends for shared configuration
- CI Integration - Run
in continuous integrationbiome ci - Pre-commit Hooks - Validate code before commits
- Editor Integration - Install Biome VSCode/IDE extensions
- Regular Updates - Keep Biome updated for new features
Common Pitfalls
- Schema Mismatch - Using outdated schema version
- Missing Migration - Not running migrate after updates
- Overly Strict - Enabling all rules without team agreement
- No VCS Integration - Not respecting gitignore patterns
- Inconsistent Config - Different settings across packages
- Ignored Warnings - Dismissing warnings that indicate issues
- No Editor Setup - Missing IDE integration for real-time feedback
- Large Line Width - Setting lineWidth too high reduces readability
- Mixed Quotes - Not enforcing consistent quote style
- No CI Enforcement - Not running checks in CI pipeline
Advanced Topics
Overrides Per Path
{ "overrides": [ { "include": ["scripts/**/*.js"], "linter": { "rules": { "suspicious": { "noConsoleLog": "off" } } } }, { "include": ["**/*.test.ts"], "linter": { "rules": { "suspicious": { "noExplicitAny": "off" } } } } ] }
Custom Scripts
Add to package.json:
{ "scripts": { "lint": "biome check .", "lint:fix": "biome check --write .", "format": "biome format --write .", "ci": "biome ci ." } }
CI/CD Integration
# CI mode (fails on warnings) biome ci . # Check without fixing biome check . # Fix automatically biome check --write . # Format only biome format --write .
When to Use This Skill
- Setting up Biome in new projects
- Migrating from ESLint/Prettier to Biome
- Configuring Biome for monorepos
- Customizing linting and formatting rules
- Troubleshooting Biome configuration issues
- Integrating Biome with CI/CD pipelines
- Establishing team code standards
- Optimizing Biome performance
Troubleshooting
Schema Version Mismatch
# Error: Schema version doesn't match CLI version npx biome migrate --write
Files Not Being Checked
Check:
- VCS integration and .gitignore
patternsfiles.ignore
if specifiedfiles.include- File extensions supported by Biome
Rules Not Applying
Verify:
is truelinter.enabled- Rule category is enabled
- Rule name is correct
- No overrides disabling the rule
Performance Issues
Optimize:
- Use
for large directoriesfiles.ignore - Enable VCS integration
- Exclude generated files
- Update to latest Biome version