roots / bud

High-performance build system that supports SWC, esbuild, and Babel
https://bud.js.org/
MIT License
332 stars 39 forks source link

[request] compatibility with eslint 9.x #2619

Open pyksid opened 1 month ago

pyksid commented 1 month ago

Agreement

Describe the issue

After upgrading from ESLint 8.x to 9.x, when running bud build, an error occurred and prevented to build assets.

Expected Behavior

bud.js builds assets.

Actual Behavior

$ yarn build

╭ bud [9039cc93a0cfeb1e]                                                                                                                                     ./public
│
│ │ [eslint] Invalid Options:
│ │ - Unknown options: extensions, resolvePluginsRelativeTo, useEslintrc
│ │ - 'extensions' has been removed.
│ │ - 'resolvePluginsRelativeTo' has been removed.
│
╰ 1 error

Steps To Reproduce

yarn build

version

6.23.1

Logs

No response

Configuration

No response

Relevant .budfiles

No response

kellymears commented 1 month ago

I'm removing the bug label because we can only support what we've committed to support, and Eslint 9 is a major upgrade we have not undertaken yet. You can check out the upgrade guide if you're interested.

We won't be able to upgrade @roots/* configs until our next major version because it's such a huge change. It also requires node@18, while we're still trying to support node@16 until bud@7.

eslint-webpack-plugin added support for eslint@9.x.x in v4.2.0 but I notice that if you follow the eslint docs and export an Array from eslint.config.js it will fail (I'm guessing eslint-webpack-plugin tries to parse it as a plain object rather than an array of plain objects, although I didn't look at the source).

Nevertheless, updating it seems like a good idea https://github.com/roots/bud/pull/2620. I'm just saying that I think it's likely eslint-webpack-plugin will see further changes in support of eslint v9 in the future. We're beholden to any of those changes.

In that same PR there is also a new examples/eslint-9.0.0 project which works using v9.