Description
Migrate from ESLint to Biome for a faster, more modern linting and formatting experience.
Problem with current setup
- ESLint is slower compared to modern alternatives
- Requires multiple plugins for TypeScript, React, etc.
- Separate tools needed for formatting (Prettier)
Benefits of Biome
- 10-100x faster than ESLint/Prettier
- Single tool for linting AND formatting
- First-class TypeScript and React support
- Zero config to get started
- Compatible with most ESLint rules
Implementation
Install Biome
bun add -D @biomejs/biome
bunx biome init
Update package.json scripts
{
"scripts": {
"lint": "biome lint .",
"lint:fix": "biome lint --write .",
"format": "biome format --write .",
"check": "biome check --write ."
}
}
Remove old dependencies
bun remove eslint @eslint/js eslint-plugin-react-hooks eslint-plugin-react-refresh typescript-eslint globals
Migrate rules
Run bunx biome migrate eslint to convert existing rules
Files to modify
package.json
- Delete
eslint.config.js
- Create
biome.json
- Update CI workflows if applicable
Description
Migrate from ESLint to Biome for a faster, more modern linting and formatting experience.
Problem with current setup
Benefits of Biome
Implementation
Install Biome
Update package.json scripts
{ "scripts": { "lint": "biome lint .", "lint:fix": "biome lint --write .", "format": "biome format --write .", "check": "biome check --write ." } }Remove old dependencies
Migrate rules
Run
bunx biome migrate eslintto convert existing rulesFiles to modify
package.jsoneslint.config.jsbiome.json