Skip to content

Replace ESLint + Prettier with Biome#745

Open
JamieMagee wants to merge 2 commits intomasterfrom
migrate-to-biome
Open

Replace ESLint + Prettier with Biome#745
JamieMagee wants to merge 2 commits intomasterfrom
migrate-to-biome

Conversation

@JamieMagee
Copy link
Contributor

@JamieMagee JamieMagee commented Mar 22, 2026

Swaps out ESLint 10, Prettier 3.8, and the three config files holding them together for Biome and a single biome.json. Five fewer devDependencies.

The formatter settings match what we had -- 120 char width, single quotes, no semicolons, no trailing commas. Biome's recommended lint rules are on, with anything we weren't already enforcing disabled (can turn those on later in separate PRs). noUnusedVariables is set to warn since Biome doesn't have ESLint's argsIgnorePattern.

npm run lint now runs biome check . instead of prettier + eslint as two separate commands. CI doesn't need changes since it just calls npm test.

Split into two commits for easier review:

  • 7bf2eda -- config swap (biome.json, package.json, VS Code settings, delete old configs)
  • 81bbf78 -- lint auto-fixes (let->const, remove self aliases, Number.parseInt, arrow functions). All mechanical, no behavior changes.

See also clearlydefined/service#1500

Drop eslint, @eslint/js, eslint-config-prettier, globals, and
prettier. Add @biomejs/biome.

biome.json carries over the same formatter settings (120 char
width, single quotes, no semicolons, no trailing commas) and
uses Biome's recommended lint rules with the ones we weren't
enforcing before turned off. noUnusedVariables is set to warn
since Biome doesn't support argsIgnorePattern.

Lint scripts now use 'biome check .' instead of running prettier
and eslint separately. VS Code config points at the Biome
extension.
Mechanical changes from biome check --write:
- let -> const where never reassigned (useConst)
- const self = this removed, self. -> this. (noUselessThisAlias)
- parseInt -> Number.parseInt (useNumberNamespace)
- function expressions -> arrow functions (useArrowFunction)
- for (let x of ...) -> for (const x of ...)

33 files, all safe transforms. No behavior changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant