Skip to content

Add ability to change image min cache time in next configuration - #23328

Closed
FDiskas wants to merge 7 commits into
vercel:canaryfrom
FDiskas:feature/configure-image-cache-time
Closed

FDiskas wants to merge 7 commits into
vercel:canaryfrom
FDiskas:feature/configure-image-cache-time

Conversation

@FDiskas

@FDiskas FDiskas commented Mar 23, 2021 •

Copy link
Copy Markdown

Feature

Ability to change cached images minimum life time directly in next.config.js

module.exports = {
  images: {
    maxAge: 60,
  },
}

Documentation / Examples

  • Make sure the linting passes

@ijjk

ijjk commented Mar 23, 2021

Copy link
Copy Markdown
Member

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 10.1s 9.9s -154ms
nodeModulesSize 45.5 MB 45.5 MB ⚠️ +153 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 1.763 1.737 -0.03
/ avg req/sec 1417.8 1439.46 +21.66
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.038 1.081 ⚠️ +0.04
/error-in-render avg req/sec 2407.54 2311.84 ⚠️ -95.7
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB ✓
framework.HASH.js gzip 39 kB 39 kB ✓
main-HASH.js gzip 7.14 kB 7.14 kB ✓
webpack-HASH.js gzip 751 B 751 B ✓
Overall change 60.3 kB 60.3 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ✓
Overall change 31.3 kB 31.3 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ✓
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ✓
amp-9716187d..0aa8.js gzip 536 B 536 B ✓
hooks-107e90..74c7.js gzip 888 B 888 B ✓
index-ac435c..ecf2.js gzip 227 B 227 B ✓
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ✓
routerDirect..dc9d.js gzip 303 B 303 B ✓
withRouter-6..0e02.js gzip 302 B 302 B ✓
Overall change 8.64 kB 8.64 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 346 B 346 B ✓
Overall change 346 B 346 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 612 B 612 B ✓
link.html gzip 621 B 621 B ✓
withRouter.html gzip 608 B 608 B ✓
Overall change 1.84 kB 1.84 kB ✓

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 11.7s 11.5s -281ms
nodeModulesSize 45.5 MB 45.5 MB ⚠️ +153 B
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB ✓
framework.HASH.js gzip 39 kB 39 kB ✓
main-HASH.js gzip 7.14 kB 7.14 kB ✓
webpack-HASH.js gzip 751 B 751 B ✓
Overall change 60.3 kB 60.3 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ✓
Overall change 31.3 kB 31.3 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ✓
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ✓
amp-9716187d..0aa8.js gzip 536 B 536 B ✓
hooks-107e90..74c7.js gzip 888 B 888 B ✓
index-ac435c..ecf2.js gzip 227 B 227 B ✓
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ✓
routerDirect..dc9d.js gzip 303 B 303 B ✓
withRouter-6..0e02.js gzip 302 B 302 B ✓
Overall change 8.64 kB 8.64 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 346 B 346 B ✓
Overall change 346 B 346 B ✓
Serverless bundles
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_error.js 1.02 MB 1.02 MB ✓
404.html 2.67 kB 2.67 kB ✓
500.html 2.65 kB 2.65 kB ✓
amp.amp.html 10.6 kB 10.6 kB ✓
amp.html 1.86 kB 1.86 kB ✓
hooks.html 1.92 kB 1.92 kB ✓
index.js 1.02 MB 1.02 MB ✓
link.js 1.08 MB 1.08 MB ✓
routerDirect.js 1.07 MB 1.07 MB ✓
withRouter.js 1.07 MB 1.07 MB ✓
Overall change 5.27 MB 5.27 MB ✓

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 11.8s 12s ⚠️ +123ms
nodeModulesSize 45.5 MB 45.5 MB ⚠️ +153 B
Page Load Tests Overall increase ✓
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 1.704 1.71 ⚠️ +0.01
/ avg req/sec 1466.79 1462.27 ⚠️ -4.52
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.068 1.058 -0.01
/error-in-render avg req/sec 2341.86 2362.28 +20.42
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
597-12fee761..569d.js gzip 13.3 kB 13.3 kB ✓
framework.HASH.js gzip 39.3 kB 39.3 kB ✓
main-HASH.js gzip 7.11 kB 7.11 kB ✓
webpack-HASH.js gzip 993 B 993 B ✓
Overall change 60.7 kB 60.7 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ✓
Overall change 31.1 kB 31.1 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-b5edc60..e5c2.js gzip 1.29 kB 1.29 kB ✓
_error-b58c1..9b8e.js gzip 3.4 kB 3.4 kB ✓
amp-89a5460c..567f.js gzip 558 B 558 B ✓
hooks-8c2e74..be37.js gzip 924 B 924 B ✓
index-fec729..83b2.js gzip 243 B 243 B ✓
link-3631090..4cab.js gzip 1.65 kB 1.65 kB ✓
routerDirect..20d7.js gzip 328 B 328 B ✓
withRouter-b..a4b9.js gzip 326 B 326 B ✓
Overall change 8.72 kB 8.72 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 325 B 325 B ✓
Overall change 325 B 325 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 585 B 585 B ✓
link.html gzip 594 B 594 B ✓
withRouter.html gzip 582 B 582 B ✓
Overall change 1.76 kB 1.76 kB ✓

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "1StzL0HCQLKTmaceXifku",
+        "buildId": "NiVAx9DBiYOinCVQy5Xsj",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/1StzL0HCQLKTmaceXifku/_buildManifest.js"
+      src="/_next/static/NiVAx9DBiYOinCVQy5Xsj/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/1StzL0HCQLKTmaceXifku/_ssgManifest.js"
+      src="/_next/static/NiVAx9DBiYOinCVQy5Xsj/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "1StzL0HCQLKTmaceXifku",
+        "buildId": "NiVAx9DBiYOinCVQy5Xsj",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/1StzL0HCQLKTmaceXifku/_buildManifest.js"
+      src="/_next/static/NiVAx9DBiYOinCVQy5Xsj/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/1StzL0HCQLKTmaceXifku/_ssgManifest.js"
+      src="/_next/static/NiVAx9DBiYOinCVQy5Xsj/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "1StzL0HCQLKTmaceXifku",
+        "buildId": "NiVAx9DBiYOinCVQy5Xsj",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/1StzL0HCQLKTmaceXifku/_buildManifest.js"
+      src="/_next/static/NiVAx9DBiYOinCVQy5Xsj/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/1StzL0HCQLKTmaceXifku/_ssgManifest.js"
+      src="/_next/static/NiVAx9DBiYOinCVQy5Xsj/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: ec263a0

@ijjk

ijjk commented Mar 23, 2021

Copy link
Copy Markdown
Member

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 13.3s 13.4s ⚠️ +105ms
nodeModulesSize 61.3 MB 61.3 MB ⚠️ +153 B
Page Load Tests Overall increase ✓
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 2.074 2.023 -0.05
/ avg req/sec 1205.59 1235.74 +30.15
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.312 1.265 -0.05
/error-in-render avg req/sec 1906.11 1975.59 +69.48
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB ✓
framework.HASH.js gzip 39 kB 39 kB ✓
main-HASH.js gzip 7.14 kB 7.14 kB ✓
webpack-HASH.js gzip 751 B 751 B ✓
Overall change 60.3 kB 60.3 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ✓
Overall change 31.3 kB 31.3 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ✓
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ✓
amp-9716187d..0aa8.js gzip 536 B 536 B ✓
hooks-107e90..74c7.js gzip 888 B 888 B ✓
index-ac435c..ecf2.js gzip 227 B 227 B ✓
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ✓
routerDirect..dc9d.js gzip 303 B 303 B ✓
withRouter-6..0e02.js gzip 302 B 302 B ✓
Overall change 8.64 kB 8.64 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 346 B 346 B ✓
Overall change 346 B 346 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 613 B 613 B ✓
link.html gzip 621 B 621 B ✓
withRouter.html gzip 607 B 607 B ✓
Overall change 1.84 kB 1.84 kB ✓

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 15s 15.2s ⚠️ +164ms
nodeModulesSize 61.3 MB 61.3 MB ⚠️ +153 B
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB ✓
framework.HASH.js gzip 39 kB 39 kB ✓
main-HASH.js gzip 7.14 kB 7.14 kB ✓
webpack-HASH.js gzip 751 B 751 B ✓
Overall change 60.3 kB 60.3 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ✓
Overall change 31.3 kB 31.3 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ✓
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ✓
amp-9716187d..0aa8.js gzip 536 B 536 B ✓
hooks-107e90..74c7.js gzip 888 B 888 B ✓
index-ac435c..ecf2.js gzip 227 B 227 B ✓
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ✓
routerDirect..dc9d.js gzip 303 B 303 B ✓
withRouter-6..0e02.js gzip 302 B 302 B ✓
Overall change 8.64 kB 8.64 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 346 B 346 B ✓
Overall change 346 B 346 B ✓
Serverless bundles
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_error.js 1.02 MB 1.02 MB ✓
404.html 2.67 kB 2.67 kB ✓
500.html 2.65 kB 2.65 kB ✓
amp.amp.html 10.6 kB 10.6 kB ✓
amp.html 1.86 kB 1.86 kB ✓
hooks.html 1.92 kB 1.92 kB ✓
index.js 1.02 MB 1.02 MB ✓
link.js 1.08 MB 1.08 MB ✓
routerDirect.js 1.07 MB 1.07 MB ✓
withRouter.js 1.07 MB 1.07 MB ✓
Overall change 5.27 MB 5.27 MB ✓

Webpack 5 Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 15.9s 15.7s -216ms
nodeModulesSize 61.3 MB 61.3 MB ⚠️ +153 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 2.032 2.124 ⚠️ +0.09
/ avg req/sec 1230.45 1176.96 ⚠️ -53.49
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.339 1.31 -0.03
/error-in-render avg req/sec 1867.37 1908.71 +41.34
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
597-12fee761..569d.js gzip 13.3 kB 13.3 kB ✓
framework.HASH.js gzip 39.3 kB 39.3 kB ✓
main-HASH.js gzip 7.11 kB 7.11 kB ✓
webpack-HASH.js gzip 993 B 993 B ✓
Overall change 60.7 kB 60.7 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ✓
Overall change 31.1 kB 31.1 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-b5edc60..e5c2.js gzip 1.29 kB 1.29 kB ✓
_error-b58c1..9b8e.js gzip 3.4 kB 3.4 kB ✓
amp-89a5460c..567f.js gzip 558 B 558 B ✓
hooks-8c2e74..be37.js gzip 924 B 924 B ✓
index-fec729..83b2.js gzip 243 B 243 B ✓
link-3631090..4cab.js gzip 1.65 kB 1.65 kB ✓
routerDirect..20d7.js gzip 328 B 328 B ✓
withRouter-b..a4b9.js gzip 326 B 326 B ✓
Overall change 8.72 kB 8.72 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 325 B 325 B ✓
Overall change 325 B 325 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 584 B 584 B ✓
link.html gzip 592 B 592 B ✓
withRouter.html gzip 581 B 581 B ✓
Overall change 1.76 kB 1.76 kB ✓

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "sKpnnDGIC0YH0q1jjk2fI",
+        "buildId": "EtFrkYOw1KnRdgoLylQbf",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/sKpnnDGIC0YH0q1jjk2fI/_buildManifest.js"
+      src="/_next/static/EtFrkYOw1KnRdgoLylQbf/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/sKpnnDGIC0YH0q1jjk2fI/_ssgManifest.js"
+      src="/_next/static/EtFrkYOw1KnRdgoLylQbf/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "sKpnnDGIC0YH0q1jjk2fI",
+        "buildId": "EtFrkYOw1KnRdgoLylQbf",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/sKpnnDGIC0YH0q1jjk2fI/_buildManifest.js"
+      src="/_next/static/EtFrkYOw1KnRdgoLylQbf/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/sKpnnDGIC0YH0q1jjk2fI/_ssgManifest.js"
+      src="/_next/static/EtFrkYOw1KnRdgoLylQbf/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "sKpnnDGIC0YH0q1jjk2fI",
+        "buildId": "EtFrkYOw1KnRdgoLylQbf",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/sKpnnDGIC0YH0q1jjk2fI/_buildManifest.js"
+      src="/_next/static/EtFrkYOw1KnRdgoLylQbf/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/sKpnnDGIC0YH0q1jjk2fI/_ssgManifest.js"
+      src="/_next/static/EtFrkYOw1KnRdgoLylQbf/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: ce8f2a1

@ijjk

ijjk commented Mar 24, 2021

Copy link
Copy Markdown
Member

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 12.1s 12.4s ⚠️ +289ms
nodeModulesSize 61.3 MB 61.3 MB ⚠️ +153 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 1.914 1.897 -0.02
/ avg req/sec 1306.31 1317.87 +11.56
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.157 1.207 ⚠️ +0.05
/error-in-render avg req/sec 2160.03 2071.27 ⚠️ -88.76
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB ✓
framework.HASH.js gzip 39 kB 39 kB ✓
main-HASH.js gzip 7.14 kB 7.14 kB ✓
webpack-HASH.js gzip 751 B 751 B ✓
Overall change 60.3 kB 60.3 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ✓
Overall change 31.3 kB 31.3 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ✓
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ✓
amp-9716187d..0aa8.js gzip 536 B 536 B ✓
hooks-107e90..74c7.js gzip 888 B 888 B ✓
index-ac435c..ecf2.js gzip 227 B 227 B ✓
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ✓
routerDirect..dc9d.js gzip 303 B 303 B ✓
withRouter-6..0e02.js gzip 302 B 302 B ✓
Overall change 8.64 kB 8.64 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 346 B 346 B ✓
Overall change 346 B 346 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 613 B 613 B ✓
link.html gzip 621 B 621 B ✓
withRouter.html gzip 607 B 607 B ✓
Overall change 1.84 kB 1.84 kB ✓

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 14.2s 14.1s -140ms
nodeModulesSize 61.3 MB 61.3 MB ⚠️ +153 B
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
677f882d2ed8..a2e7.js gzip 13.4 kB 13.4 kB ✓
framework.HASH.js gzip 39 kB 39 kB ✓
main-HASH.js gzip 7.14 kB 7.14 kB ✓
webpack-HASH.js gzip 751 B 751 B ✓
Overall change 60.3 kB 60.3 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB ✓
Overall change 31.3 kB 31.3 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-fde3324..9dd1.js gzip 1.28 kB 1.28 kB ✓
_error-af59f..582f.js gzip 3.46 kB 3.46 kB ✓
amp-9716187d..0aa8.js gzip 536 B 536 B ✓
hooks-107e90..74c7.js gzip 888 B 888 B ✓
index-ac435c..ecf2.js gzip 227 B 227 B ✓
link-e6cee42..49eb.js gzip 1.64 kB 1.64 kB ✓
routerDirect..dc9d.js gzip 303 B 303 B ✓
withRouter-6..0e02.js gzip 302 B 302 B ✓
Overall change 8.64 kB 8.64 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 346 B 346 B ✓
Overall change 346 B 346 B ✓
Serverless bundles
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_error.js 1.02 MB 1.02 MB ✓
404.html 2.67 kB 2.67 kB ✓
500.html 2.65 kB 2.65 kB ✓
amp.amp.html 10.6 kB 10.6 kB ✓
amp.html 1.86 kB 1.86 kB ✓
hooks.html 1.92 kB 1.92 kB ✓
index.js 1.02 MB 1.02 MB ✓
link.js 1.08 MB 1.08 MB ✓
routerDirect.js 1.07 MB 1.07 MB ✓
withRouter.js 1.07 MB 1.07 MB ✓
Overall change 5.27 MB 5.27 MB ✓

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 14.7s 14.9s ⚠️ +205ms
nodeModulesSize 61.3 MB 61.3 MB ⚠️ +153 B
Page Load Tests Overall increase ✓
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 1.95 1.951 0
/ avg req/sec 1282.02 1281.64 ⚠️ -0.38
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.266 1.19 -0.08
/error-in-render avg req/sec 1975.1 2101.35 +126.25
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
597-12fee761..569d.js gzip 13.3 kB 13.3 kB ✓
framework.HASH.js gzip 39.3 kB 39.3 kB ✓
main-HASH.js gzip 7.11 kB 7.11 kB ✓
webpack-HASH.js gzip 993 B 993 B ✓
Overall change 60.7 kB 60.7 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ✓
Overall change 31.1 kB 31.1 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-b5edc60..e5c2.js gzip 1.29 kB 1.29 kB ✓
_error-b58c1..9b8e.js gzip 3.4 kB 3.4 kB ✓
amp-89a5460c..567f.js gzip 558 B 558 B ✓
hooks-8c2e74..be37.js gzip 924 B 924 B ✓
index-fec729..83b2.js gzip 243 B 243 B ✓
link-3631090..4cab.js gzip 1.65 kB 1.65 kB ✓
routerDirect..20d7.js gzip 328 B 328 B ✓
withRouter-b..a4b9.js gzip 326 B 326 B ✓
Overall change 8.72 kB 8.72 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 325 B 325 B ✓
Overall change 325 B 325 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 584 B 584 B ✓
link.html gzip 592 B 592 B ✓
withRouter.html gzip 581 B 581 B ✓
Overall change 1.76 kB 1.76 kB ✓

Diffs

Diff for index.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "U9ABLogaGdfJVwkEwAeiY",
+        "buildId": "vvkGqdoTY0Vwv7X7zTUrp",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/U9ABLogaGdfJVwkEwAeiY/_buildManifest.js"
+      src="/_next/static/vvkGqdoTY0Vwv7X7zTUrp/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/U9ABLogaGdfJVwkEwAeiY/_ssgManifest.js"
+      src="/_next/static/vvkGqdoTY0Vwv7X7zTUrp/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "U9ABLogaGdfJVwkEwAeiY",
+        "buildId": "vvkGqdoTY0Vwv7X7zTUrp",
         "isFallback": false,
         "gip": true
       }
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/U9ABLogaGdfJVwkEwAeiY/_buildManifest.js"
+      src="/_next/static/vvkGqdoTY0Vwv7X7zTUrp/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/U9ABLogaGdfJVwkEwAeiY/_ssgManifest.js"
+      src="/_next/static/vvkGqdoTY0Vwv7X7zTUrp/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "U9ABLogaGdfJVwkEwAeiY",
+        "buildId": "vvkGqdoTY0Vwv7X7zTUrp",
         "isFallback": false,
         "gip": true
       }
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/U9ABLogaGdfJVwkEwAeiY/_buildManifest.js"
+      src="/_next/static/vvkGqdoTY0Vwv7X7zTUrp/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/U9ABLogaGdfJVwkEwAeiY/_ssgManifest.js"
+      src="/_next/static/vvkGqdoTY0Vwv7X7zTUrp/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: c0ac1d3

@ijjk

ijjk commented Mar 28, 2021

Copy link
Copy Markdown
Member

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 15s 14.9s -82ms
nodeModulesSize 61.8 MB 61.8 MB ⚠️ +153 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 1.973 1.996 ⚠️ +0.02
/ avg req/sec 1266.98 1252.64 ⚠️ -14.34
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.183 1.23 ⚠️ +0.05
/error-in-render avg req/sec 2113.91 2032.69 ⚠️ -81.22
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
597-31f97ebd..2557.js gzip 13.3 kB 13.3 kB ✓
778-be276ce6..765f.js gzip 7.05 kB 7.05 kB ✓
framework.HASH.js gzip 39.3 kB 39.3 kB ✓
main-HASH.js gzip 151 B 151 B ✓
webpack-HASH.js gzip 993 B 993 B ✓
Overall change 60.8 kB 60.8 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ✓
Overall change 31.1 kB 31.1 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-bdbd9e6..6cfe.js gzip 1.3 kB 1.3 kB ✓
_error-b58c1..9b8e.js gzip 3.4 kB 3.4 kB ✓
amp-89a5460c..567f.js gzip 558 B 558 B ✓
hooks-8c2e74..be37.js gzip 924 B 924 B ✓
index-fec729..83b2.js gzip 243 B 243 B ✓
link-d124373..c521.js gzip 1.66 kB 1.66 kB ✓
routerDirect..5759.js gzip 336 B 336 B ✓
withRouter-1..98bf.js gzip 334 B 334 B ✓
Overall change 8.76 kB 8.76 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 349 B 349 B ✓
Overall change 349 B 349 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 609 B 609 B ✓
link.html gzip 615 B 615 B ✓
withRouter.html gzip 603 B 603 B ✓
Overall change 1.83 kB 1.83 kB ✓

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 18.5s 18.3s -253ms
nodeModulesSize 61.8 MB 61.8 MB ⚠️ +153 B
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
597-31f97ebd..2557.js gzip 13.3 kB 13.3 kB ✓
778-be276ce6..765f.js gzip 7.05 kB 7.05 kB ✓
framework.HASH.js gzip 39.3 kB 39.3 kB ✓
main-HASH.js gzip 151 B 151 B ✓
webpack-HASH.js gzip 993 B 993 B ✓
Overall change 60.8 kB 60.8 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ✓
Overall change 31.1 kB 31.1 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-bdbd9e6..6cfe.js gzip 1.3 kB 1.3 kB ✓
_error-b58c1..9b8e.js gzip 3.4 kB 3.4 kB ✓
amp-89a5460c..567f.js gzip 558 B 558 B ✓
hooks-8c2e74..be37.js gzip 924 B 924 B ✓
index-fec729..83b2.js gzip 243 B 243 B ✓
link-d124373..c521.js gzip 1.66 kB 1.66 kB ✓
routerDirect..5759.js gzip 336 B 336 B ✓
withRouter-1..98bf.js gzip 334 B 334 B ✓
Overall change 8.76 kB 8.76 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 349 B 349 B ✓
Overall change 349 B 349 B ✓
Serverless bundles Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_error.js 1.34 MB 1.34 MB ✓
404.html 2.76 kB 2.76 kB ✓
500.html 2.75 kB 2.75 kB ✓
amp.amp.html 10.6 kB 10.6 kB ✓
amp.html 1.96 kB 1.96 kB ✓
hooks.html 2.01 kB 2.01 kB ✓
index.js 1.34 MB 1.34 MB ✓
link.js 1.4 MB 1.4 MB ✓
routerDirect.js 1.39 MB 1.39 MB ⚠️ +2 B
withRouter.js 1.39 MB 1.39 MB ✓
Overall change 6.89 MB 6.89 MB ⚠️ +2 B

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
buildDuration 15s 15s ⚠️ +65ms
nodeModulesSize 61.8 MB 61.8 MB ⚠️ +153 B
Page Load Tests Overall increase ✓
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
/ failed reqs 0 0 ✓
/ total time (seconds) 2.023 1.985 -0.04
/ avg req/sec 1235.82 1259.24 +23.42
/error-in-render failed reqs 0 0 ✓
/error-in-render total time (seconds) 1.214 1.187 -0.03
/error-in-render avg req/sec 2059.33 2105.64 +46.31
Client Bundles (main, webpack, commons)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
597-31f97ebd..2557.js gzip 13.3 kB 13.3 kB ✓
778-be276ce6..765f.js gzip 7.05 kB 7.05 kB ✓
framework.HASH.js gzip 39.3 kB 39.3 kB ✓
main-HASH.js gzip 151 B 151 B ✓
webpack-HASH.js gzip 993 B 993 B ✓
Overall change 60.8 kB 60.8 kB ✓
Legacy Client Bundles (polyfills)
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB ✓
Overall change 31.1 kB 31.1 kB ✓
Client Pages
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_app-bdbd9e6..6cfe.js gzip 1.3 kB 1.3 kB ✓
_error-b58c1..9b8e.js gzip 3.4 kB 3.4 kB ✓
amp-89a5460c..567f.js gzip 558 B 558 B ✓
hooks-8c2e74..be37.js gzip 924 B 924 B ✓
index-fec729..83b2.js gzip 243 B 243 B ✓
link-d124373..c521.js gzip 1.66 kB 1.66 kB ✓
routerDirect..5759.js gzip 336 B 336 B ✓
withRouter-1..98bf.js gzip 334 B 334 B ✓
Overall change 8.76 kB 8.76 kB ✓
Client Build Manifests
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
_buildManifest.js gzip 349 B 349 B ✓
Overall change 349 B 349 B ✓
Rendered Page Sizes
vercel/next.js canary FDiskas/next.js feature/configure-image-cache-time Change
index.html gzip 609 B 609 B ✓
link.html gzip 615 B 615 B ✓
withRouter.html gzip 603 B 603 B ✓
Overall change 1.83 kB 1.83 kB ✓

Diffs

Diff for index.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "uEYU0_kLdkJm3zsPkRDNA",
+        "buildId": "Nj8ihmixuM_LROMBCbzCe",
         "isFallback": false,
         "gip": true
       }
@@ -86,11 +86,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/uEYU0_kLdkJm3zsPkRDNA/_buildManifest.js"
+      src="/_next/static/Nj8ihmixuM_LROMBCbzCe/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/uEYU0_kLdkJm3zsPkRDNA/_ssgManifest.js"
+      src="/_next/static/Nj8ihmixuM_LROMBCbzCe/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -53,7 +53,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "uEYU0_kLdkJm3zsPkRDNA",
+        "buildId": "Nj8ihmixuM_LROMBCbzCe",
         "isFallback": false,
         "gip": true
       }
@@ -91,11 +91,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/uEYU0_kLdkJm3zsPkRDNA/_buildManifest.js"
+      src="/_next/static/Nj8ihmixuM_LROMBCbzCe/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/uEYU0_kLdkJm3zsPkRDNA/_ssgManifest.js"
+      src="/_next/static/Nj8ihmixuM_LROMBCbzCe/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "uEYU0_kLdkJm3zsPkRDNA",
+        "buildId": "Nj8ihmixuM_LROMBCbzCe",
         "isFallback": false,
         "gip": true
       }
@@ -86,11 +86,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/uEYU0_kLdkJm3zsPkRDNA/_buildManifest.js"
+      src="/_next/static/Nj8ihmixuM_LROMBCbzCe/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/uEYU0_kLdkJm3zsPkRDNA/_ssgManifest.js"
+      src="/_next/static/Nj8ihmixuM_LROMBCbzCe/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: 963f883

upstreamBuffer = Buffer.concat(resBuffers)
upstreamType = mockRes.getHeader('Content-Type')
maxAge = getMaxAge(mockRes.getHeader('Cache-Control'))
maxAge = getMaxAge(mockRes.getHeader('Cache-Control'), imageData.maxAge)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's destructure imageData above like the other properties.

We'll need to pass the value to both places we call getMaxAge()


export function getMaxAge(str: string | null): number {
const minimum = 60
export function getMaxAge(str: string | null, minimum = 60): number {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
export function getMaxAge(str: string | null, minimum = 60): number {
export function getMaxAge(str: string | null, minimum: number): number {

Let's always pass in the config value here

Images are optimized dynamically upon request and stored in the `<distDir>/cache/images` directory. The optimized image file will be served for subsequent requests until the expiration is reached. When a request is made that matches a cached but expired file, the cached file is deleted before generating a new optimized image and caching the new file.

The expiration (or rather Max Age) is defined by the upstream server's `Cache-Control` header.
The expiration (or rather Max Age) is defined by the upstream server's `Cache-Control` header or by adding configuration to `next.config.js`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't quite true for how its implemented: its actually a mimimum max-age so this config won't be used when the upstream value is larger than the config value.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this paragraph can be left alone and instead you can modify the algorithm defined on line 113 where it says "If s-maxage is found"

@styfle styfle left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR!

I left a few comments that need to be resolved.

Also, this needs a new test in ./test/integration/image-optimizer/test/index.test.js

```js
module.exports = {
images: {
maxAge: 60,

@styfle styfle Jul 12, 2021 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should call this minimumCacheTTL or minimumCacheDuration. Without "mimimum", it won't be clear that the value is only used as the lower bound. If the upstream image has a larger max-age then it will use that value instead of the config value.

@styfle

styfle commented Jul 15, 2021

Copy link
Copy Markdown
Member

This PR has merge conflicts so I created one a new one #27200

@kodiakhq kodiakhq Bot closed this in #27200 Jul 15, 2021
kodiakhq Bot pushed a commit that referenced this pull request Jul 15, 2021
- Closes #23328  
- Related to #19914 
- Related to #22319 


## Feature

- [x] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [x] Errors have helpful link attached, see `contributing.md`
@FDiskas
FDiskas deleted the feature/configure-image-cache-time branch July 16, 2021 06:28
flybayer pushed a commit to blitz-js/next.js that referenced this pull request Aug 19, 2021
- Closes vercel#23328  
- Related to vercel#19914 
- Related to vercel#22319 


## Feature

- [x] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [x] Errors have helpful link attached, see `contributing.md`
@vercel vercel locked as resolved and limited conversation to collaborators Jan 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

next/image custom Cache-Control max-age value

3 participants