biome-configuration
Use when biome configuration including biome.json setup, schema versions, VCS integration, and project organization.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Biome 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:
-
enabled: Enable VCS integration -
clientKind: "git" for Git repositories -
useIgnoreFile: Respect .gitignore patterns -
defaultBranch: Default branch name for operations
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:
-
enabled: Enable/disable formatter -
formatWithErrors: Format even with syntax errors -
indentStyle: "space" or "tab" -
indentWidth: Number of spaces (2 or 4 recommended) -
lineEnding: "lf", "crlf", or "cr" -
lineWidth: Maximum line length
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:
-
"off": Disable rule -
"warn": Show warning -
"error": Fail check
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
$schemafor IDE support -
Version Management - Run
biome migrateafter updates - 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
biome ciin continuous integration - 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
-
files.ignorepatterns -
files.includeif specified - File extensions supported by Biome
Rules Not Applying
Verify:
-
linter.enabledis true - Rule category is enabled
- Rule name is correct
- No overrides disabling the rule
Performance Issues
Optimize:
- Use
files.ignorefor large directories - Enable VCS integration
- Exclude generated files
- Update to latest Biome version
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-02-04
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!