This can only be good news. Normally I, like anyone else experienced with the JS ecosystem, despair when new tools come out like this. However, consider:<p>- setting up eslint isn't actually that simple<p>- if you're using typescript you need eslint-typescript too<p>- there are sets of rules in both eslint and eslint-typescript that conflict with each other, so I have countless rules in my config like this:<p><pre><code> 'comma-dangle': 'off',
'@typescript-eslint/comma-dangle': ['error', 'always-multiline'],
</code></pre>
- then if you're doing React there's another set of JS and TS rules to apply, I still never figured out how to correctly apply airbnb rules<p>- this is a pretty garbage developer experience<p>- you can quite literally spend hours or days getting a "good" linting/formatting configuration setup, and you often can only use pieces of the configs you wrote for other repos because over time the rules and settings seem to change<p>- I hope this will eventually support things such as .astro files which is actually a combination of TypeScript and TSX blocks<p>> At this stage, oxlint is not intended to fully replace ESLint; it serves as an enhancement when ESLint's slowness becomes a bottleneck in your workflow.<p>I also hope that eventually it does become a full replacement. I like eslint, but holy shit, I cannot bring myself to create a new config from scratch that wrestles all the required extras and the frequently changing dependencies.<p>Also, wanted to give a sort of shout out to Deno here. Deno comes with a linter/formatter built in that is barely configurable (just double vs single quote, 2 or 4 space indentation, minor things) and it too is very fast and simply "just works".<p>---<p>Update: I just gave it a quick try and I am <i>immediately</i> impressed by it. Not only was it incredibly fast like it claims, it appears to already have all of the rules I was complaining about built in.<p><pre><code> eslint-plugin-react(jsx-no-useless-fragment): Fragments should contain more than one child.
╭─[src/design/site/preact/MobileNavigationMenu.tsx:18:1]
18 │ return (
19 │ <>
· ──
20 │ <MenuButton isOpen={isOpen} onChange={setIsOpen} />
Finished in 17ms on 90 files with 70 rules using 16 threads.
Found 13 warnings and 0 errors.</code></pre>