-
Notifications
You must be signed in to change notification settings - Fork 27.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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