Skip to content

disable static generation on interception routes - #61004

Merged
ztanner merged 2 commits into
canaryfrom
01-22-disable_static_generation_on_interception_routes
Jan 23, 2024
Merged

disable static generation on interception routes#61004
ztanner merged 2 commits into
canaryfrom
01-22-disable_static_generation_on_interception_routes

Conversation

@ztanner

@ztanner ztanner commented Jan 22, 2024

Copy link
Copy Markdown
Member

What & Why?

Interception routes depend on contextual information that are provided via request headers. Specifically it needs to know about the Next-Router-State-Tree when generating the interception route RSC data, which isn't available at build time. This doesn't currently cause any usage issues, but it erroneously emits static files & RSC payloads that the client router won't be able to use and will instead fallback to a dynamic request.

I removed some special case in an existing test since this fix also resolves a discrepancy in behavior when PPR is turned on

How?

This excludes interception routes from appStaticPaths at builds which currently determines which pages should be statically generated.

Closes NEXT-2190

ztanner commented Jan 22, 2024

Copy link
Copy Markdown
Member Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ztanner and the rest of your teammates on Graphite Graphite

@ztanner
ztanner force-pushed the 01-22-disable_static_generation_on_interception_routes branch from 4f2cc09 to efe7283 Compare January 22, 2024 22:32
@ijjk

ijjk commented Jan 22, 2024

Copy link
Copy Markdown
Member

Stats from current PR

Default Build
General Overall increase ⚠️
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
buildDuration 11.5s 11.7s ⚠️ +248ms
buildDurationCached 6s 4.9s N/A
nodeModulesSize 200 MB 200 MB ⚠️ +4.77 kB
nextStartRea..uration (ms) 434ms 424ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
193.HASH.js gzip 181 B 182 B N/A
3f784ff6-HASH.js gzip 53.4 kB 53.4 kB
433-HASH.js gzip 29 kB 29 kB N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 239 B 242 B N/A
main-HASH.js gzip 31.8 kB 31.8 kB N/A
webpack-HASH.js gzip 1.7 kB 1.7 kB N/A
Overall change 98.6 kB 98.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
_app-HASH.js gzip 194 B 195 B N/A
_error-HASH.js gzip 183 B 181 B N/A
amp-HASH.js gzip 504 B 502 B N/A
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.5 kB 2.5 kB N/A
edge-ssr-HASH.js gzip 255 B 253 B N/A
head-HASH.js gzip 350 B 349 B N/A
hooks-HASH.js gzip 369 B 369 B
image-HASH.js gzip 4.18 kB 4.18 kB N/A
index-HASH.js gzip 255 B 256 B N/A
link-HASH.js gzip 2.61 kB 2.61 kB
routerDirect..HASH.js gzip 312 B 311 B N/A
script-HASH.js gzip 385 B 383 B N/A
withRouter-HASH.js gzip 307 B 308 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.4 kB 3.4 kB
Client Build Manifests
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
_buildManifest.js gzip 484 B 485 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
index.html gzip 529 B 528 B N/A
link.html gzip 540 B 540 B
withRouter.html gzip 523 B 523 B
Overall change 1.06 kB 1.06 kB
Edge SSR bundle Size
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
edge-ssr.js gzip 94 kB 94 kB N/A
page.js gzip 149 kB 149 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
middleware-b..fest.js gzip 622 B 627 B N/A
middleware-r..fest.js gzip 151 B 151 B
middleware.js gzip 37.5 kB 37.5 kB N/A
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 2.07 kB 2.07 kB
Next Runtimes
vercel/next.js canary vercel/next.js 01-22-disable_static_generation_on_interception_routes Change
app-page-exp...dev.js gzip 169 kB 169 kB
app-page-exp..prod.js gzip 95.6 kB 95.6 kB
app-page-tur..prod.js gzip 96.3 kB 96.3 kB
app-page-tur..prod.js gzip 90.9 kB 90.9 kB
app-page.run...dev.js gzip 142 kB 142 kB
app-page.run..prod.js gzip 90.2 kB 90.2 kB
app-route-ex...dev.js gzip 24.2 kB 24.2 kB
app-route-ex..prod.js gzip 16.9 kB 16.9 kB
app-route-tu..prod.js gzip 16.9 kB 16.9 kB
app-route-tu..prod.js gzip 16.4 kB 16.4 kB
app-route.ru...dev.js gzip 23.6 kB 23.6 kB
app-route.ru..prod.js gzip 16.4 kB 16.4 kB
pages-api-tu..prod.js gzip 9.41 kB 9.41 kB
pages-api.ru...dev.js gzip 9.68 kB 9.68 kB
pages-api.ru..prod.js gzip 9.4 kB 9.4 kB
pages-turbo...prod.js gzip 22 kB 22 kB
pages.runtim...dev.js gzip 22.6 kB 22.6 kB
pages.runtim..prod.js gzip 22 kB 22 kB
server.runti..prod.js gzip 49.7 kB 49.7 kB
Overall change 944 kB 944 kB
Commit: 6cfd703

@ijjk

ijjk commented Jan 22, 2024

Copy link
Copy Markdown
Member

Tests Passed

@ztanner
ztanner force-pushed the 01-22-disable_static_generation_on_interception_routes branch from efe7283 to 228ea51 Compare January 22, 2024 22:46
@ztanner
ztanner force-pushed the 01-22-disable_static_generation_on_interception_routes branch from 228ea51 to 93710dd Compare January 22, 2024 23:07
@ztanner
ztanner marked this pull request as ready for review January 22, 2024 23:34
@ztanner
ztanner merged commit cf0f090 into canary Jan 23, 2024
@ztanner
ztanner deleted the 01-22-disable_static_generation_on_interception_routes branch January 23, 2024 00:33
@ghost

ghost commented Jan 23, 2024

Copy link
Copy Markdown

Hi Team

still seeing 404 error on trying to open dynamic route intercepting when used along with

export const generateStaticParams = async () => {
  return locales.map((lang) => ({ lang }));
};

it triggering complete page refresh. when

export const dynamicParams = false; // true | false,

image

and when
export const dynamicParams = true; // true | false,

and if work fines in development but breaks in production build

image

@github-actions github-actions Bot added the locked label Feb 7, 2024
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Feb 7, 2024
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