Turbopack: Enable server HMR by default for app pages#91476
Conversation
…ext dev` with Turbopack. Previously it required opting in with `--experimental-server-fast-refresh`. - Replaces `--experimental-server-fast-refresh` with `--no-server-fast-refresh` to opt out - Updates telemetry to record `feature.serverFastRefreshDisabled` when the disable flag is passed - [ ] Verify `next dev` enables server HMR by default (Turbopack, app dir, non-edge routes) - [ ] Verify `next dev --no-server-fast-refresh` disables it - CI
Failing test suitesCommit: c6017da | About building and testing Next.js
Expand output● Graceful Shutdown › production (standalone mode) › should not accept new requests during shutdown cleanup › should stop accepting new requests when shutting down
Expand output● app dir - metadata static routes cache › should generate different content after replace the static metadata file
Expand output● deterministic build - changing deployment id › build output API - standard builder › should produce identical build outputs even when changing deployment id |
next dev with Turbopack. Previously it required opting in with --experimental-server-fast-refresh.
Merging this PR will not alter performance
Comparing Footnotes
|
Stats from current PR✅ No significant changes detected📊 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
Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📎 Tarball URL |
andrewimm
left a comment
There was a problem hiding this comment.
spent forever trying to figure out how the option was getting sent to the actual dev server, before I realized that Commander has special casing for options that start with "no-"
…ext.js 16.2+ compatibility (#16074) [Next.js 16.2 enables server fast refresh by default](vercel/next.js#91476), which breaks Payload's HMR - config changes don't propagate until a full server restart. Adding `--no-server-fast-refresh` to the dev command fixes it. This is a temporary workaround until the upstream issue is resolved. --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1213814287069601
This enables server HMR (formally, this is called server fast refresh) by default for app router pages. For now, it's still disabled for routes and middleware even with app router.
Replaces
--experimental-server-fast-refreshwith--no-server-fast-refreshto opt outUpdates telemetry to record
feature.serverFastRefreshDisabledwhen the disable flag is passedVerify
next devenables server HMR by default (Turbopack, app dir, non-edge routes)Verify
next dev --no-server-fast-refreshdisables itCI