-
Notifications
You must be signed in to change notification settings - Fork 27.8k
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
Unused searchParams
in "use cache"
page should not cause dynamic
#75662
Conversation
d40c6b9
to
f1ea005
Compare
Tests Passed |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
buildDuration | 19s | 16.1s | N/A |
buildDurationCached | 15.3s | 12.9s | N/A |
nodeModulesSize | 392 MB | 392 MB | |
nextStartRea..uration (ms) | 425ms | 406ms | N/A |
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
5306-HASH.js gzip | 54 kB | 54.2 kB | |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.46 kB | 5.46 kB | N/A |
bccd1874-HASH.js gzip | 52.9 kB | 52.9 kB | N/A |
framework-HASH.js gzip | 57.5 kB | 57.5 kB | N/A |
main-app-HASH.js gzip | 239 B | 242 B | N/A |
main-HASH.js gzip | 34.5 kB | 34.5 kB | N/A |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
Overall change | 54 kB | 54.2 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 193 B | 193 B | ✓ |
amp-HASH.js gzip | 512 B | 510 B | N/A |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | ✓ |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 362 B | N/A |
hooks-HASH.js gzip | 393 B | 392 B | N/A |
image-HASH.js gzip | 4.59 kB | 4.58 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.35 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 323 B | 326 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.59 kB | 3.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
_buildManifest.js gzip | 748 B | 747 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
index.html gzip | 523 B | 523 B | ✓ |
link.html gzip | 538 B | 538 B | ✓ |
withRouter.html gzip | 519 B | 520 B | N/A |
Overall change | 1.06 kB | 1.06 kB | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
edge-ssr.js gzip | 130 kB | 130 kB | N/A |
page.js gzip | 210 kB | 210 kB | |
Overall change | 210 kB | 210 kB |
Middleware size
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 674 B | 672 B | N/A |
middleware-r..fest.js gzip | 155 B | 156 B | N/A |
middleware.js gzip | 31.3 kB | 31.3 kB | N/A |
edge-runtime..pack.js gzip | 844 B | 844 B | ✓ |
Overall change | 844 B | 844 B | ✓ |
Next Runtimes Overall increase ⚠️
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 393 kB | 393 kB | |
app-page-exp..prod.js gzip | 132 kB | 132 kB | |
app-page-tur..prod.js gzip | 145 kB | 145 kB | |
app-page-tur..prod.js gzip | 141 kB | 141 kB | |
app-page.run...dev.js gzip | 380 kB | 380 kB | |
app-page.run..prod.js gzip | 128 kB | 128 kB | |
app-route-ex...dev.js gzip | 39.3 kB | 39.3 kB | N/A |
app-route-ex..prod.js gzip | 25.6 kB | 25.6 kB | N/A |
app-route-tu..prod.js gzip | 25.6 kB | 25.6 kB | N/A |
app-route-tu..prod.js gzip | 25.4 kB | 25.4 kB | N/A |
app-route.ru...dev.js gzip | 40.8 kB | 40.9 kB | N/A |
app-route.ru..prod.js gzip | 25.4 kB | 25.4 kB | N/A |
dist_client_...dev.js gzip | 356 B | 356 B | ✓ |
dist_client_...dev.js gzip | 349 B | 349 B | ✓ |
pages-api-tu..prod.js gzip | 9.69 kB | 9.69 kB | ✓ |
pages-api.ru...dev.js gzip | 11.8 kB | 11.8 kB | ✓ |
pages-api.ru..prod.js gzip | 9.68 kB | 9.68 kB | ✓ |
pages-turbo...prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
pages.runtim...dev.js gzip | 31.5 kB | 31.5 kB | ✓ |
pages.runtim..prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
server.runti..prod.js gzip | 60.5 kB | 60.5 kB | ✓ |
Overall change | 1.49 MB | 1.49 MB |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js hl/nar-85 | Change | |
---|---|---|---|
0.pack gzip | 2.1 MB | 2.1 MB | N/A |
index.pack gzip | 75 kB | 75.8 kB | |
Overall change | 75 kB | 75.8 kB |
Diff details
Diff for middleware.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for 5306-HASH.js
Diff too large to display
Diff for main-HASH.js
Diff too large to display
Diff for app-page-exp..ntime.dev.js
Diff too large to display
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
Diff too large to display
Diff for app-page.runtime.prod.js
Diff too large to display
Diff for app-route-ex..ntime.dev.js
Diff too large to display
Diff for app-route-ex..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route.runtime.dev.js
Diff too large to display
Diff for app-route.ru..time.prod.js
Diff too large to display
8d6118a
to
d66414c
Compare
This stack of pull requests is managed by Graphite. Learn more about stacking. |
d3313de
to
738b764
Compare
d66414c
to
d601049
Compare
"use cache"
page should not cause dynamicsearchParams
in "use cache"
page should not cause dynamic
738b764
to
72611f3
Compare
57bbfc7
to
6de131b
Compare
When
dynamicIO
is not enabled, and only the standaloneuseCache
experimental flag is enabled, we can not encodesearchParams
as hanging promises. To still avoid unused search params from making a page dynamic (due to thesearchParams
being encoded into the cache key), we set them to a promise that resolves to an empty object, while also overwriting the to-be-invoked function for generating a cache entry with a function that creates an erroringsearchParams
prop before invoking the original function. This ensures that usedsearchParams
inside of cached functions would still yield an error.closes NAR-85