Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions packages/next/src/bin/next.ts
Original file line number Diff line number Diff line change
Expand Up @@ -313,10 +313,6 @@ program
'--experimental-https-ca, <path>',
'Path to a HTTPS certificate authority file.'
)
.option(
'--experimental-server-fast-refresh',
'Enable experimental server-side Fast Refresh.'
)
.option(
'--experimental-upload-trace, <traceUrl>',
'Reports a subset of the debugging trace to a remote HTTP URL. Includes sensitive data.'
Expand Down
3 changes: 0 additions & 3 deletions packages/next/src/cli/next-dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ export type NextDevOptions = {
experimentalUploadTrace?: string
experimentalNextConfigStripTypes?: boolean
experimentalCpuProf?: boolean
experimentalServerFastRefresh?: boolean
}

type PortSource = 'cli' | 'default' | 'env'
Expand Down Expand Up @@ -255,7 +254,6 @@ const nextDev = async (

const enabledFeatures = Object.fromEntries(
Object.entries({
experimentalServerFastRefresh: options.experimentalServerFastRefresh,
experimentalCpuProf: options.experimentalCpuProf,
}).filter(([_, value]) => value)
)
Expand All @@ -275,7 +273,6 @@ const nextDev = async (
allowRetry,
isDev: true,
hostname: host,
experimentalServerFastRefresh: options.experimentalServerFastRefresh,
}

const startServerPath = require.resolve('../server/lib/start-server')
Expand Down
50 changes: 22 additions & 28 deletions packages/next/src/server/dev/hot-reloader-turbopack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,7 @@ export async function createHotReloaderTurbopack(
serverFields: ServerFields,
distDir: string,
resetFetch: () => void,
lockfile: Lockfile | undefined,
experimentalServerFastRefresh?: boolean
lockfile: Lockfile | undefined
): Promise<NextJsHotReloaderInterface> {
const dev = true
const buildId = 'development'
Expand Down Expand Up @@ -596,10 +595,7 @@ export async function createHotReloaderTurbopack(
// Server HMR only applies to App Router.
// Pages Router uses Node's require(), root entries (middleware/instrumentation)
// use the edge runtime.
const usesServerHmr =
experimentalServerFastRefresh &&
entryType === 'app' &&
writtenEndpoint.type !== 'edge'
const usesServerHmr = entryType === 'app' && writtenEndpoint.type !== 'edge'

for (const file of serverPaths) {
clearModuleContext(file)
Expand Down Expand Up @@ -1819,32 +1815,30 @@ export async function createHotReloaderTurbopack(
process.exit(1)
})

if (experimentalServerFastRefresh) {
serverHmrSubscriptions = setupServerHmr(project, {
clear: async () => {
// Clear Node's require cache of all Turbopack-built modules
for (const chunkPath of serverHmrSubscriptions?.keys() ?? []) {
deleteCache(join(distDir, chunkPath))
}
serverHmrSubscriptions = setupServerHmr(project, {
clear: async () => {
// Clear Node's require cache of all Turbopack-built modules
for (const chunkPath of serverHmrSubscriptions?.keys() ?? []) {
deleteCache(join(distDir, chunkPath))
}

// Clear Turbopack's runtime caches
if (typeof __next__clear_chunk_cache__ === 'function') {
__next__clear_chunk_cache__()
}
// Clear Turbopack's runtime caches
if (typeof __next__clear_chunk_cache__ === 'function') {
__next__clear_chunk_cache__()
}

// Clear all edge contexts
await clearAllModuleContexts()
// Clear all edge contexts
await clearAllModuleContexts()

resetFetch()
resetFetch()

// Tell browsers to refetch RSC (soft refresh, not full page reload)
hotReloader.send({
type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES,
hash: String(++hmrHash),
})
},
})
}
// Tell browsers to refetch RSC (soft refresh, not full page reload)
hotReloader.send({
type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES,
hash: String(++hmrHash),
})
},
})

return hotReloader
}
2 changes: 0 additions & 2 deletions packages/next/src/server/lib/router-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ export async function initialize(opts: {
keepAliveTimeout?: number
customServer?: boolean
experimentalHttpsServer?: boolean
experimentalServerFastRefresh?: boolean
startServerSpan?: Span
quiet?: boolean
}): Promise<ServerInitResult> {
Expand Down Expand Up @@ -179,7 +178,6 @@ export async function initialize(opts: {
port: opts.port,
onDevServerCleanup: opts.onDevServerCleanup,
resetFetch,
experimentalServerFastRefresh: opts.experimentalServerFastRefresh,
})
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@ export type SetupOpts = {
port: number
onDevServerCleanup: ((listener: () => Promise<void>) => void) | undefined
resetFetch: () => void
experimentalServerFastRefresh?: boolean
}

export interface DevRoutesManifest {
Expand Down Expand Up @@ -237,8 +236,7 @@ async function startWatcher(
serverFields,
distDir,
resetFetch,
lockfile,
opts.experimentalServerFastRefresh
lockfile
)
})()
: await (async () => {
Expand Down
6 changes: 0 additions & 6 deletions packages/next/src/server/lib/start-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ export interface StartServerOptions {
keepAliveTimeout?: number
// this is dev-server only
selfSignedCertificate?: SelfSignedCertificate
experimentalServerFastRefresh?: boolean
}

export async function getRequestHandlers({
Expand All @@ -142,7 +141,6 @@ export async function getRequestHandlers({
minimalMode,
keepAliveTimeout,
experimentalHttpsServer,
experimentalServerFastRefresh,
quiet,
}: {
dir: string
Expand All @@ -154,7 +152,6 @@ export async function getRequestHandlers({
minimalMode?: boolean
keepAliveTimeout?: number
experimentalHttpsServer?: boolean
experimentalServerFastRefresh?: boolean
quiet?: boolean
}): ReturnType<typeof initialize> {
return initialize({
Expand All @@ -167,7 +164,6 @@ export async function getRequestHandlers({
server,
keepAliveTimeout,
experimentalHttpsServer,
experimentalServerFastRefresh,
startServerSpan,
quiet,
})
Expand All @@ -188,7 +184,6 @@ export async function startServer(
allowRetry,
keepAliveTimeout,
selfSignedCertificate,
experimentalServerFastRefresh,
} = serverOptions
let { port } = serverOptions

Expand Down Expand Up @@ -489,7 +484,6 @@ export async function startServer(
minimalMode,
keepAliveTimeout,
experimentalHttpsServer: !!selfSignedCertificate,
experimentalServerFastRefresh,
})
requestHandler = initResult.requestHandler
upgradeHandler = initResult.upgradeHandler
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ function parseTraceFile(tracePath: string): TraceStructure {
describe('enabled features in trace', () => {
const { next, isNextDev } = nextTestSetup({
files: __dirname,
startArgs: ['--experimental-server-fast-refresh'],
})

if (!isNextDev) {
Expand Down Expand Up @@ -76,9 +75,9 @@ describe('enabled features in trace', () => {

const startDevServerEvent = startDevServerEvents![0]
expect(startDevServerEvent.tags).toBeDefined()
expect(
startDevServerEvent.tags!['feature.experimentalServerFastRefresh']
).toBe(true)
// expect(
// startDevServerEvent.tags!['feature.experimentalServerFastRefresh']
// ).toBe(true)
})

it('should denormalize inherited enabled features during upload', async () => {
Expand Down Expand Up @@ -140,14 +139,14 @@ describe('enabled features in trace', () => {

// Both should have inherited feature.experimentalServerFastRefresh from their parent
expect(compilePathEvent).toBeDefined()
expect(compilePathEvent.tags['feature.experimentalServerFastRefresh']).toBe(
true
)
// expect(compilePathEvent.tags['feature.experimentalServerFastRefresh']).toBe(
// true
// )

expect(renderPathEvent).toBeDefined()
expect(renderPathEvent.tags['feature.experimentalServerFastRefresh']).toBe(
true
)
// expect(renderPathEvent.tags['feature.experimentalServerFastRefresh']).toBe(
// true
// )
})
})

Expand Down
1 change: 0 additions & 1 deletion test/development/app-dir/server-hmr/server-hmr.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { retry } from 'next-test-utils'
describe('server-hmr', () => {
const { next, isTurbopack, isNextDev } = nextTestSetup({
files: __dirname,
startArgs: ['--experimental-server-fast-refresh'],
})

// Server HMR is a Turbopack-only feature, only available in dev mode
Expand Down
Loading