KEMBAR78
Add webpack 5 cache invalidation by timneutkens · Pull Request #16494 · vercel/next.js · GitHub
Skip to content

Conversation

timneutkens
Copy link
Member

@timneutkens timneutkens commented Aug 23, 2020

Handles:

  • Next.js version
  • next.config.js env key
  • NEXT_PUBLIC_ prefixed environment variables
  • next.config.js keys that affect performance

Ideally we don't invalidate the whole cache when NEXT_PUBLIC_ / env key variables change, but this is just to initially make the caching reliable, this behavior is similar to the current webpack 4 behavior, so it can only be improved 👍

Handles:

- Next.js version
- next.config.js `env` key
- `NEXT_PUBLIC_` prefixed environment variables
- next.config.js keys that affect performance
@ijjk
Copy link
Member

ijjk commented Aug 23, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
buildDuration 13s 13.4s ⚠️ +467ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +5.57 kB
Page Load Tests Overall increase ✓
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
/ failed reqs 0 0
/ total time (seconds) 2.417 2.479 ⚠️ +0.06
/ avg req/sec 1034.51 1008.37 ⚠️ -26.14
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.523 1.452 -0.07
/error-in-render avg req/sec 1641.94 1721.18 +79.24
Client Bundles (main, webpack, commons)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..7f47.js gzip 10.3 kB 10.3 kB
framework.HASH.js gzip 39 kB 39 kB
main-978aff6..e7ab.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..dule.js gzip 6.15 kB 6.15 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-46b15db..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.1 kB 52.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.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-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..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-4cfda7a..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.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
index.html gzip 949 B 949 B
link.html gzip 955 B 955 B
withRouter.html gzip 940 B 940 B
Overall change 2.84 kB 2.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
buildDuration 15.3s 15.1s -186ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +5.57 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..7f47.js gzip 10.3 kB 10.3 kB
framework.HASH.js gzip 39 kB 39 kB
main-978aff6..e7ab.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..dule.js gzip 6.15 kB 6.15 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-46b15db..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.1 kB 52.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.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-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..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-4cfda7a..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.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_error.js 1.03 MB 1.03 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.03 MB 1.03 MB
link.js 1.07 MB 1.07 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.28 MB 5.28 MB
Commit: 5ed0151

@ijjk
Copy link
Member

ijjk commented Aug 23, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
buildDuration 10.5s 10.6s ⚠️ +104ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +5.88 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
/ failed reqs 0 0
/ total time (seconds) 1.995 2.137 ⚠️ +0.14
/ avg req/sec 1253.07 1169.88 ⚠️ -83.19
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.218 1.236 ⚠️ +0.02
/error-in-render avg req/sec 2052.55 2022.09 ⚠️ -30.46
Client Bundles (main, webpack, commons)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..7f47.js gzip 10.3 kB 10.3 kB
framework.HASH.js gzip 39 kB 39 kB
main-978aff6..e7ab.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..dule.js gzip 6.15 kB 6.15 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-46b15db..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.1 kB 52.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.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-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..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-4cfda7a..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.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
index.html gzip 949 B 949 B
link.html gzip 955 B 955 B
withRouter.html gzip 940 B 940 B
Overall change 2.84 kB 2.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
buildDuration 12.5s 12s -507ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +5.88 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..7f47.js gzip 10.3 kB 10.3 kB
framework.HASH.js gzip 39 kB 39 kB
main-978aff6..e7ab.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..dule.js gzip 6.15 kB 6.15 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-46b15db..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.1 kB 52.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.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-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..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-4cfda7a..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.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_error.js 1.03 MB 1.03 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.03 MB 1.03 MB
link.js 1.07 MB 1.07 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.28 MB 5.28 MB
Commit: 07a540c

Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

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

LGTM

@ijjk
Copy link
Member

ijjk commented Aug 24, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
buildDuration 12.1s 12s -67ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +5.88 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
/ failed reqs 0 0
/ total time (seconds) 2.133 2.187 ⚠️ +0.05
/ avg req/sec 1172.21 1143.15 ⚠️ -29.06
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.191 1.178 -0.01
/error-in-render avg req/sec 2099.65 2121.7 +22.05
Client Bundles (main, webpack, commons)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..7f47.js gzip 10.3 kB 10.3 kB
framework.HASH.js gzip 39 kB 39 kB
main-978aff6..e7ab.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..dule.js gzip 6.15 kB 6.15 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-46b15db..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.1 kB 52.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.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-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..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-4cfda7a..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.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
index.html gzip 949 B 949 B
link.html gzip 955 B 955 B
withRouter.html gzip 940 B 940 B
Overall change 2.84 kB 2.84 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
buildDuration 13.6s 13.5s -69ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +5.88 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..7f47.js gzip 10.3 kB 10.3 kB
framework.HASH.js gzip 39 kB 39 kB
main-978aff6..e7ab.js gzip 7.2 kB 7.2 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.2 kB 57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
677f882d2ed8..dule.js gzip 6.15 kB 6.15 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-46b15db..dule.js gzip 6.24 kB 6.24 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.1 kB 52.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.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-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..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-4cfda7a..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.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles
vercel/next.js canary timneutkens/next.js add/cache-invalidation Change
_error.js 1.03 MB 1.03 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.03 MB 1.03 MB
link.js 1.07 MB 1.07 MB
routerDirect.js 1.07 MB 1.07 MB
withRouter.js 1.07 MB 1.07 MB
Overall change 5.28 MB 5.28 MB
Commit: f58684c

@kodiakhq kodiakhq bot merged commit f2ba97d into vercel:canary Aug 24, 2020
@timneutkens timneutkens deleted the add/cache-invalidation branch August 24, 2020 08:34
@vercel vercel locked as resolved and limited conversation to collaborators Jan 30, 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.

3 participants