Skip to content

feat: always include Oxlint with ESLint#869

Merged
haoqunjiang merged 7 commits intovuejs:mainfrom
haoqunjiang:feat/always-use-oxlint-with-eslint
Jan 29, 2026
Merged

feat: always include Oxlint with ESLint#869
haoqunjiang merged 7 commits intovuejs:mainfrom
haoqunjiang:feat/always-use-oxlint-with-eslint

Conversation

@haoqunjiang
Copy link
Member

@haoqunjiang haoqunjiang commented Dec 12, 2025

Oxlint has been stable for half a year now.
I think it's time to make it the default for all linter users.

Also closes #886

@cexbrayat
Copy link
Member

@haoqunjiang I have not used oxlint much myself, so I have some naive questions

If I understand correctly, this adds oxlint but no configuration files. Shouldn't we provide an example config a bit more complete than correctness? For example, I'm not sure what should be done for Vue files now that oxlint supports some rules, but not all. Same question for TS projects: what should be configured? Is it automatically done? Or should it be done manually (and then documented)?

I'm not against making it the default, but as it is currently an addition more than a replacement, it feels like this just adds more maintenance burden in created project, with slightly unclear interactions between the various tools.

@haoqunjiang
Copy link
Member Author

I opened #875 to simplify the generation process (it's really hard to make changes with the current implementation) and added .oxlintrc.json in the generated projects.

I had thought oxlint should be the default zero-config linting tool, as it's so fast and prioritized correctness rules in its early development.
But yeah, it's a bit hard to ignore the inherent complexity now. Yet it only supports JSON configurations, so I don't have a good idea to fix that.

As for TypeScript, I've tried my best to encapsulate the complexities into @vue/tsconfig, but the generated tsconfigs haven't been documented well, which could be improved before making TS the default language.

@haoqunjiang
Copy link
Member Author

Let's merge this feature for now.

I don't expect the way we integrate ESLint & Oxlint in Vue projects to change significantly in the near future, yet the performance improvement is not negligible.

So, for the time being, I think we'll need to live with the added complexity and treat that as a working basis to build on.

@haoqunjiang haoqunjiang merged commit dc46fea into vuejs:main Jan 29, 2026
118 of 120 checks passed
@MichaHuhn
Copy link

MichaHuhn commented Jan 29, 2026

I'm looking forward to oxlint and oxfmt :D

Code formatting On Save doesn't work anymore in WebStorm because it doesn't recognize Prettier.
Is that an issue which needs to be fixed by WebStorm?

I also tried to select node_modules\oxfmt but that didn't work either:

image image
Failed to reformat: unsupported package version
Please upgrade 'prettier' package to minimum version 1.13.0

@haoqunjiang
Copy link
Member Author

Oxfmt isn't a drop-in replacement for Prettier. You'll need a different plugin for WebStorm: https://plugins.jetbrains.com/plugin/27061-oxc

@MichaHuhn
Copy link

Oh I see, that worked. Thank you very much!

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.

Choosing Oxlint without ESLint does not add Oxlint

3 participants