-
Notifications
You must be signed in to change notification settings - Fork 27.7k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
fix: replace deprecated/removed functions in eslint-plugin-next #64251
Conversation
Removed dependencies detected. Learn more about Socket for GitHub ↗︎ |
@z0n Hi! Here is another migration guide https://eslint.org/docs/latest/extend/plugin-migration-flat-config |
@r34son This was meant as a first step, I know there's a few more things to do. This will make the |
Is there any progress on this so far? If work still needs to be done I could jump on it. |
@henrikvtcodes I'm still available but I need some feedback here. 😕 For full ESLint 9 support we also need the stuff @r34son mentioned but I didn't feel confident enough to update the whole plugin system. 😄 This PR makes |
31f5d9b
to
599b7d1
Compare
Allow CI Workflow Run
Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
buildDuration | 22.5s | 19.7s | N/A |
buildDurationCached | 11.1s | 9.5s | N/A |
nodeModulesSize | 360 MB | 360 MB | ✓ |
nextStartRea..uration (ms) | 497ms | 493ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
1103-HASH.js gzip | 31.9 kB | 31.9 kB | N/A |
1a9f679d-HASH.js gzip | 53.5 kB | 53.5 kB | N/A |
335-HASH.js gzip | 5.05 kB | 5.05 kB | ✓ |
7953.HASH.js gzip | 169 B | 169 B | ✓ |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 230 B | 228 B | N/A |
main-HASH.js gzip | 31.6 kB | 31.6 kB | N/A |
webpack-HASH.js gzip | 1.65 kB | 1.65 kB | N/A |
Overall change | 50.4 kB | 50.4 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
_app-HASH.js gzip | 192 B | 193 B | N/A |
_error-HASH.js gzip | 192 B | 193 B | N/A |
amp-HASH.js gzip | 507 B | 511 B | N/A |
css-HASH.js gzip | 341 B | 343 B | N/A |
dynamic-HASH.js gzip | 2.52 kB | 2.52 kB | ✓ |
edge-ssr-HASH.js gzip | 266 B | 265 B | N/A |
head-HASH.js gzip | 362 B | 365 B | N/A |
hooks-HASH.js gzip | 392 B | 392 B | ✓ |
image-HASH.js gzip | 4.27 kB | 4.27 kB | ✓ |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.69 kB | 2.7 kB | N/A |
routerDirect..HASH.js gzip | 329 B | 328 B | N/A |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 324 B | 324 B | ✓ |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 8.27 kB | 8.27 kB | ✓ |
Client Build Manifests
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
_buildManifest.js gzip | 483 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
index.html gzip | 528 B | 529 B | N/A |
link.html gzip | 541 B | 540 B | N/A |
withRouter.html gzip | 524 B | 523 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
edge-ssr.js gzip | 94.8 kB | 94.8 kB | N/A |
page.js gzip | 182 kB | 182 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 621 B | 625 B | N/A |
middleware-r..fest.js gzip | 156 B | 156 B | ✓ |
middleware.js gzip | 25.7 kB | 25.7 kB | N/A |
edge-runtime..pack.js gzip | 839 B | 839 B | ✓ |
Overall change | 995 B | 995 B | ✓ |
Next Runtimes
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 171 kB | 171 kB | ✓ |
app-page-exp..prod.js gzip | 98.8 kB | 98.8 kB | ✓ |
app-page-tur..prod.js gzip | 100 kB | 100 kB | ✓ |
app-page-tur..prod.js gzip | 94.6 kB | 94.6 kB | ✓ |
app-page.run...dev.js gzip | 157 kB | 157 kB | ✓ |
app-page.run..prod.js gzip | 93.3 kB | 93.3 kB | ✓ |
app-route-ex...dev.js gzip | 21.5 kB | 21.5 kB | ✓ |
app-route-ex..prod.js gzip | 15.3 kB | 15.3 kB | ✓ |
app-route-tu..prod.js gzip | 15.3 kB | 15.3 kB | ✓ |
app-route-tu..prod.js gzip | 15 kB | 15 kB | ✓ |
app-route.ru...dev.js gzip | 21.3 kB | 21.3 kB | ✓ |
app-route.ru..prod.js gzip | 15 kB | 15 kB | ✓ |
pages-api-tu..prod.js gzip | 9.55 kB | 9.55 kB | ✓ |
pages-api.ru...dev.js gzip | 9.82 kB | 9.82 kB | ✓ |
pages-api.ru..prod.js gzip | 9.55 kB | 9.55 kB | ✓ |
pages-turbo...prod.js gzip | 21.5 kB | 21.5 kB | ✓ |
pages.runtim...dev.js gzip | 22.1 kB | 22.1 kB | ✓ |
pages.runtim..prod.js gzip | 21.5 kB | 21.5 kB | ✓ |
server.runti..prod.js gzip | 51.7 kB | 51.7 kB | ✓ |
Overall change | 964 kB | 964 kB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | z0n/next.js feat/eslint-plugin-next-9-support | Change | |
---|---|---|---|
0.pack gzip | 1.62 MB | 1.62 MB | |
index.pack gzip | 113 kB | 114 kB | |
Overall change | 1.73 MB | 1.74 MB |
Diff details
Diff for edge-ssr.js
Diff too large to display
Hi everyone, this is my first PR to such a large project so please be gentle. 😄 I'm also new to publishing packages so I'm not sure if I'm missing any steps.
ESLint 9.0.0 came out a few days ago and unfortunately,
eslint-plugin-next
is not compatible as it uses deprecated (and with ESLint 9.0.0 removed) functions.In this PR, I replaced the deprecated functions with the suggested replacements (check this out).
Regarding backwards compatibility, everything I used is available since ESLint 8.40 (released May 2023). I'm not sure how far back Next.js support goes but it feels fine to me.
I successfully tested some rules locally with ESLint 9.0.0 and this
eslint.config.js
(flat config format):It has a few more configs but I'm sure you can remove most of them. The important one is the
nextConfig
. Also important: Runeslint
and notnext lint
, it's currently not compatible with the new flat config format.Related discussion: #54238