-
Notifications
You must be signed in to change notification settings - Fork 30.3k
refactor: consolidate PPR into cacheComponents architecture #88243
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
Conversation
Removes the experimental.ppr configuration flag and consolidates Partial Prerendering (PPR) functionality into the cacheComponents architecture. Key changes: - Delete postpone.ts and ppr.ts utility files - Remove PrerenderStorePPR work unit type - Remove React.unstable_postpone-based dynamic rendering - Deprecate experimental.ppr config (PPR now implicit with cacheComponents) - Simplify build system PPR detection - Update tests to remove PPR-specific expectations This unifies the two parallel rendering systems into one cacheComponents-based approach.
Stats from current PR🟢 1 improvement
📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles: **431 kB** → **430 kB** ✅ -566 B82 files with content-based hashes (individual files not comparable between builds) Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📝 Changed Files (17 files)Files with changes:
View diffsapp-page-exp..ntime.dev.jsfailed to diffapp-page-exp..time.prod.jsDiff too large to display app-page-tur..ntime.dev.jsfailed to diffapp-page-tur..time.prod.jsDiff too large to display app-page-tur..ntime.dev.jsfailed to diffapp-page-tur..time.prod.jsDiff too large to display app-page.runtime.dev.jsfailed to diffapp-page.runtime.prod.jsDiff too large to display app-route-ex..ntime.dev.jsDiff too large to display app-route-ex..time.prod.jsDiff too large to display app-route-tu..ntime.dev.jsDiff too large to display app-route-tu..time.prod.jsDiff too large to display app-route-tu..ntime.dev.jsDiff too large to display app-route-tu..time.prod.jsDiff too large to display app-route.runtime.dev.jsDiff too large to display app-route.ru..time.prod.jsDiff too large to display server.runtime.prod.jsDiff too large to display |
|
Notifying the following users due to files changed in this PR based on this repo's notify modifiers: @timneutkens, @ijjk, @shuding, @huozhi: |

What?
Removes the
experimental.pprconfiguration flag and consolidates Partial Prerendering (PPR) functionality into thecacheComponentsarchitecture.Why?
Having two separate systems (PPR flag and cacheComponents) created dual code paths and complexity. PPR is now implicitly enabled when cacheComponents is enabled, simplifying the codebase.
How?
postpone.tsandppr.tsutility filesPrerenderStorePPRwork unit type and all PPR-specific work unit casesexperimental.pprconfig (kept for backwards compatibility)cacheComponentsflagThis removes ~986 lines of code across 48 files.
NAR-490