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
ESLint rules for the image component #17694
Conversation
Stats from current PRDefault Server Mode (Decrease detected ✓)General
Page Load Tests Overall decrease
|
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.544 | 2.635 | |
/ avg req/sec | 982.74 | 948.69 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.592 | 1.65 | |
/error-in-render avg req/sec | 1570.71 | 1515.18 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..9339.js gzip | 10.9 kB | 10.9 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-e5f5aee..31e1.js gzip | 7.17 kB | 7.17 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 57.8 kB | 57.8 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.77 kB | 6.77 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-ff4dea7..dule.js gzip | 6.24 kB | 6.24 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 52.7 kB | 52.7 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d2344ce..8b36.js gzip | 1.3 kB | 1.3 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-f8c0daf..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.36 kB | 5.36 kB | ✓ |
Client Build Manifests
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_buildManifest.js gzip | 322 B | 322 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
buildDuration | 15.2s | 15.2s | |
nodeModulesSize | 63.2 MB | 63.2 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..9339.js gzip | 10.9 kB | 10.9 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-e5f5aee..31e1.js gzip | 7.17 kB | 7.17 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 57.8 kB | 57.8 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.77 kB | 6.77 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-ff4dea7..dule.js gzip | 6.24 kB | 6.24 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 52.7 kB | 52.7 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d2344ce..8b36.js gzip | 1.3 kB | 1.3 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-f8c0daf..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.36 kB | 5.36 kB | ✓ |
Client Build Manifests
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_buildManifest.js gzip | 322 B | 322 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_error.js | 1.05 MB | 1.05 MB | ✓ |
404.html | 4.34 kB | 4.34 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.05 MB | 1.05 MB | ✓ |
link.js | 1.1 MB | 1.1 MB | ✓ |
routerDirect.js | 1.09 MB | 1.09 MB | ✓ |
withRouter.js | 1.09 MB | 1.09 MB | ✓ |
Overall change | 5.4 MB | 5.4 MB | ✓ |
packages/eslint-plugin-next/lib/rules/image-component/missing-alt-text.js
Outdated
Show resolved
Hide resolved
packages/eslint-plugin-next/lib/rules/image-component/no-absolute-paths.js
Outdated
Show resolved
Hide resolved
return ( | ||
attributesObj['unoptimized'] && | ||
attributesObj.src && | ||
!attributesObj.src.match(/^http|www/) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same issue as above.
Also this will prevent from using Img component on a locally hosted image right?
Locally hosted image will need relative path with unoptimized prop
packages/eslint-plugin-next/lib/rules/image-component/no-unsized-images.js
Outdated
Show resolved
Hide resolved
packages/eslint-plugin-next/lib/rules/image-component/no-unoptimized-relative.js
Outdated
Show resolved
Hide resolved
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
buildDuration | 13.1s | 14.7s | |
nodeModulesSize | 63.4 MB | 63.4 MB | ✓ |
Page Load Tests Overall increase ✓
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.847 | 2.725 | -0.12 |
/ avg req/sec | 878.14 | 917.51 | +39.37 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.799 | 1.748 | -0.05 |
/error-in-render avg req/sec | 1389.74 | 1430.06 | +40.32 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..133b.js gzip | 11.1 kB | 11.1 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-2540b2f..aa10.js gzip | 7.22 kB | 7.22 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58 kB | 58 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.9 kB | 6.9 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-0d1e0b8..dule.js gzip | 6.28 kB | 6.28 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 52.9 kB | 52.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-409b283..e3ab.js gzip | 1.32 kB | 1.32 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.73 kB | 7.73 kB | ✓ |
Client Pages Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-92d3016..dule.js gzip | 1.28 kB | 1.28 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
buildDuration | 15.8s | 15.9s | |
nodeModulesSize | 63.4 MB | 63.4 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..133b.js gzip | 11.1 kB | 11.1 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-2540b2f..aa10.js gzip | 7.22 kB | 7.22 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58 kB | 58 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.9 kB | 6.9 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-0d1e0b8..dule.js gzip | 6.28 kB | 6.28 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 52.9 kB | 52.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-409b283..e3ab.js gzip | 1.32 kB | 1.32 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.73 kB | 7.73 kB | ✓ |
Client Pages Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-92d3016..dule.js gzip | 1.28 kB | 1.28 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Serverless bundles
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_error.js | 1.05 MB | 1.05 MB | ✓ |
404.html | 4.34 kB | 4.34 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.05 MB | 1.05 MB | ✓ |
link.js | 1.1 MB | 1.1 MB | ✓ |
routerDirect.js | 1.09 MB | 1.09 MB | ✓ |
withRouter.js | 1.09 MB | 1.09 MB | ✓ |
Overall change | 5.41 MB | 5.41 MB | ✓ |
Stats from current PRDefault Server Mode (Decrease detected ✓)General
Page Load Tests Overall decrease
|
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.957 | 1.974 | |
/ avg req/sec | 1277.73 | 1266.56 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.039 | 1.043 | 0 |
/error-in-render avg req/sec | 2405.41 | 2397.02 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..133b.js gzip | 11.1 kB | 11.1 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-2540b2f..aa10.js gzip | 7.22 kB | 7.22 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58 kB | 58 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.9 kB | 6.9 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-0d1e0b8..dule.js gzip | 6.28 kB | 6.28 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 52.9 kB | 52.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-409b283..e3ab.js gzip | 1.32 kB | 1.32 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.73 kB | 7.73 kB | ✓ |
Client Pages Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-92d3016..dule.js gzip | 1.28 kB | 1.28 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
buildDuration | 11.7s | 11.8s | |
nodeModulesSize | 63.4 MB | 63.4 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..133b.js gzip | 11.1 kB | 11.1 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-2540b2f..aa10.js gzip | 7.22 kB | 7.22 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58 kB | 58 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.9 kB | 6.9 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-0d1e0b8..dule.js gzip | 6.28 kB | 6.28 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 52.9 kB | 52.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-409b283..e3ab.js gzip | 1.32 kB | 1.32 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.73 kB | 7.73 kB | ✓ |
Client Pages Modern
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-92d3016..dule.js gzip | 1.28 kB | 1.28 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Serverless bundles
vercel/next.js canary | azukaru/next.js image-component-eslint | Change | |
---|---|---|---|
_error.js | 1.05 MB | 1.05 MB | ✓ |
404.html | 4.34 kB | 4.34 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.05 MB | 1.05 MB | ✓ |
link.js | 1.1 MB | 1.1 MB | ✓ |
routerDirect.js | 1.09 MB | 1.09 MB | ✓ |
withRouter.js | 1.09 MB | 1.09 MB | ✓ |
Overall change | 5.41 MB | 5.41 MB | ✓ |
@@ -0,0 +1,26 @@ | |||
const createImageRule = require('../../utils/imageComponentRule.js') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can omit the .js
suffix for all the imports
messages: { | ||
noAbsolutePaths: | ||
'You are using an absolute path in the src attribute of the next/image component.' + | ||
'This is almost definitely a mistake--use the "unoptimized" attribute to use ' + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
adding "unoptimized" is a last resort opt out right?
point to documentation link to what they should actually do to optimize?
unsizedImages: | ||
'For layout stability, the image component should be used ' + | ||
'with a height and width property, even if actual image size is determined with CSS.' + | ||
'if you cannot provide a correct-ratio height and width, use the "unsized" attribute.' + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we know of legit cases for the opt out? is this the right way to opt out vs. via config file?
meta: { | ||
messages: { | ||
noUnoptimizedRelative: | ||
'You are using arelaive path in the src attribute of the next/image component ' + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'You are using arelaive path in the src attribute of the next/image component ' + | |
'You are using a relative path in the src attribute of the next/image component ' + |
This PR got put on the back-burner for quite a while, and now @housseindjirdeh is undertaking some new conformance-related work, so I think it makes sense to close this, and create a new one around image-related conformance a little later on. |
This PR adds rules to the Next ESLint plugin concerning the image component in #17343. The rules included here are:
3 & 4) Image src must either be a relative path without the unoptimized attribute, or an absolute path with the unoptimized attribute.