Skip to content

Conversation

@david-crespo
Copy link
Collaborator

@david-crespo david-crespo commented Dec 23, 2025

Oxlint runs in 800ms without caching. Eslint runs in 14 seconds without caching, 600ms with a warm cache and no changes. So Oxlint without caching is about the same as eslint with caching.

$ time npm run lint

> oxide@0.0.0 lint
> eslint --ext .js,.ts,.tsx app test mock-api

npm run lint  21.42s user 2.09s system 166% cpu 14.150 total

$ time npm run lint -- --cache

> oxide@0.0.0 lint
> eslint --ext .js,.ts,.tsx app test mock-api --cache

npm run lint -- --cache  0.69s user 0.22s system 83% cpu 1.083 total

$ time npm run lint -- --cache

> oxide@0.0.0 lint
> eslint --ext .js,.ts,.tsx app test mock-api --cache

npm run lint -- --cache  0.67s user 0.17s system 144% cpu 0.579 total

We've been running both eslint and oxlint for a while. Now that oxlint supports type-aware rules and JS plugins, I think it's time to drop eslint. The playwright plugin runs via oxlint's experimental JS plugin support. We do lose eslint-plugin-react-hook-form for now because all 3 rules use context.getScope(), which oxlint doesn't support yet. I'll make an issue to add it back when it's supported.

@vercel
Copy link

vercel bot commented Dec 23, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
console Ready Ready Preview Dec 24, 2025 0:01am

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.

2 participants