diff --git a/crates/next-build-test/nextConfig.json b/crates/next-build-test/nextConfig.json
index 6341127ae3a303..13142e8a57d241 100644
--- a/crates/next-build-test/nextConfig.json
+++ b/crates/next-build-test/nextConfig.json
@@ -53,8 +53,6 @@
"productionBrowserSourceMaps": false,
"optimizeFonts": true,
"excludeDefaultMomentLocales": true,
- "serverRuntimeConfig": {},
- "publicRuntimeConfig": {},
"reactProductionProfiling": false,
"reactStrictMode": true,
"httpAgentOptions": {
diff --git a/docs/01-app/02-guides/environment-variables.mdx b/docs/01-app/02-guides/environment-variables.mdx
index 809d4871cd9923..83917914232fd4 100644
--- a/docs/01-app/02-guides/environment-variables.mdx
+++ b/docs/01-app/02-guides/environment-variables.mdx
@@ -228,7 +228,6 @@ This allows you to use a singular Docker image that can be promoted through mult
**Good to know:**
- You can run code on server startup using the [`register` function](/docs/app/guides/instrumentation).
-- We do not recommend using the [`runtimeConfig`](/docs/pages/api-reference/config/next-config-js/runtime-configuration) option, as this does not work with the standalone output mode. Instead, we recommend [incrementally adopting](/docs/app/guides/migrating/app-router-migration) the App Router if you need this feature.
## Test Environment Variables
diff --git a/docs/01-app/02-guides/self-hosting.mdx b/docs/01-app/02-guides/self-hosting.mdx
index c09f87d0501048..9e161028cdedef 100644
--- a/docs/01-app/02-guides/self-hosting.mdx
+++ b/docs/01-app/02-guides/self-hosting.mdx
@@ -79,7 +79,6 @@ This allows you to use a singular Docker image that can be promoted through mult
> **Good to know:**
>
> - You can run code on server startup using the [`register` function](/docs/app/guides/instrumentation).
-> - We do not recommend using the [runtimeConfig](/docs/pages/api-reference/config/next-config-js/runtime-configuration) option, as this does not work with the standalone output mode. Instead, we recommend [incrementally adopting](/docs/app/guides/migrating/app-router-migration) the App Router.
## Caching and ISR
diff --git a/docs/01-app/03-api-reference/05-config/01-next-config-js/output.mdx b/docs/01-app/03-api-reference/05-config/01-next-config-js/output.mdx
index 4d068fa1bba8d7..ee010ca94702fc 100644
--- a/docs/01-app/03-api-reference/05-config/01-next-config-js/output.mdx
+++ b/docs/01-app/03-api-reference/05-config/01-next-config-js/output.mdx
@@ -59,7 +59,7 @@ node .next/standalone/server.js
> **Good to know**:
>
-> - `next.config.js` is read during `next build` and serialized into the `server.js` output file. If the legacy [`serverRuntimeConfig` or `publicRuntimeConfig` options](/docs/pages/api-reference/config/next-config-js/runtime-configuration) are being used, the values will be specific to values at build time.
+> - `next.config.js` is read during `next build` and serialized into the `server.js` output file.
> - If your project needs to listen to a specific port or hostname, you can define `PORT` or `HOSTNAME` environment variables before running `server.js`. For example, run `PORT=8080 HOSTNAME=0.0.0.0 node server.js` to start the server on `http://0.0.0.0:8080`.
diff --git a/docs/02-pages/04-api-reference/04-config/01-next-config-js/runtime-configuration.mdx b/docs/02-pages/04-api-reference/04-config/01-next-config-js/runtime-configuration.mdx
deleted file mode 100644
index 879394ea38dd40..00000000000000
--- a/docs/02-pages/04-api-reference/04-config/01-next-config-js/runtime-configuration.mdx
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: Runtime Config
-description: Add client and server runtime configuration to your Next.js app.
----
-
-> **Warning:**
->
-> - **This feature is deprecated.** We recommend using [environment variables](/docs/pages/guides/environment-variables) instead, which also can support reading runtime values.
-> - You can run code on server startup using the [`register` function](/docs/app/guides/instrumentation).
-> - This feature does not work with [Automatic Static Optimization](/docs/pages/building-your-application/rendering/automatic-static-optimization), [Output File Tracing](/docs/pages/api-reference/config/next-config-js/output#automatically-copying-traced-files), or [React Server Components](/docs/app/getting-started/server-and-client-components).
-
-To add runtime configuration to your app, open `next.config.js` and add the `publicRuntimeConfig` and `serverRuntimeConfig` configs:
-
-```js filename="next.config.js"
-module.exports = {
- serverRuntimeConfig: {
- // Will only be available on the server side
- mySecret: 'secret',
- secondSecret: process.env.SECOND_SECRET, // Pass through env variables
- },
- publicRuntimeConfig: {
- // Will be available on both server and client
- staticFolder: '/static',
- },
-}
-```
-
-Place any server-only runtime config under `serverRuntimeConfig`.
-
-Anything accessible to both client and server-side code should be under `publicRuntimeConfig`.
-
-> A page that relies on `publicRuntimeConfig` **must** use `getInitialProps` or `getServerSideProps` or your application must have a [Custom App](/docs/pages/building-your-application/routing/custom-app) with `getInitialProps` to opt-out of [Automatic Static Optimization](/docs/pages/building-your-application/rendering/automatic-static-optimization). Runtime configuration won't be available to any page (or component in a page) without being server-side rendered.
-
-To get access to the runtime configs in your app use `next/config`, like so:
-
-```jsx
-import getConfig from 'next/config'
-import Image from 'next/image'
-
-// Only holds serverRuntimeConfig and publicRuntimeConfig
-const { serverRuntimeConfig, publicRuntimeConfig } = getConfig()
-// Will only be available on the server-side
-console.log(serverRuntimeConfig.mySecret)
-// Will be available on both server-side and client-side
-console.log(publicRuntimeConfig.staticFolder)
-
-function MyImage() {
- return (
-
-
-
- )
-}
-
-export default MyImage
-```
diff --git a/packages/next/config.d.ts b/packages/next/config.d.ts
deleted file mode 100644
index 20c292fb467ef1..00000000000000
--- a/packages/next/config.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import getConfig from './dist/shared/lib/runtime-config.external'
-export * from './dist/shared/lib/runtime-config.external'
-export default getConfig
diff --git a/packages/next/config.js b/packages/next/config.js
deleted file mode 100644
index 668ee7c54f0e0e..00000000000000
--- a/packages/next/config.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./dist/shared/lib/runtime-config.external')
diff --git a/packages/next/index.d.ts b/packages/next/index.d.ts
index 8e7cf5d71b9be2..ab2ddbddb0c515 100644
--- a/packages/next/index.d.ts
+++ b/packages/next/index.d.ts
@@ -4,7 +4,6 @@
///
///
///
-///
///
///
///
diff --git a/packages/next/src/build/index.ts b/packages/next/src/build/index.ts
index 68c7034f998fbe..c72704951a51c3 100644
--- a/packages/next/src/build/index.ts
+++ b/packages/next/src/build/index.ts
@@ -1903,9 +1903,7 @@ export default async function build(
}
}
- const { configFileName, publicRuntimeConfig, serverRuntimeConfig } =
- config
- const runtimeEnvConfig = { publicRuntimeConfig, serverRuntimeConfig }
+ const { configFileName } = config
const sriEnabled = Boolean(config.experimental.sri?.algorithm)
const nonStaticErrorPageSpan = staticCheckSpan.traceChild(
@@ -1918,7 +1916,6 @@ export default async function build(
(await worker.hasCustomGetInitialProps({
page: '/_error',
distDir,
- runtimeEnvConfig,
checkingApp: false,
sriEnabled,
}))
@@ -1932,7 +1929,6 @@ export default async function build(
page: '/_error',
distDir,
configFileName,
- runtimeEnvConfig,
cacheComponents: isAppCacheComponentsEnabled,
authInterrupts: isAuthInterruptsEnabled,
httpAgentOptions: config.httpAgentOptions,
@@ -1952,7 +1948,6 @@ export default async function build(
? worker.hasCustomGetInitialProps({
page: appPageToCheck,
distDir,
- runtimeEnvConfig,
checkingApp: true,
sriEnabled,
})
@@ -1962,7 +1957,6 @@ export default async function build(
? worker.getDefinedNamedExports({
page: appPageToCheck,
distDir,
- runtimeEnvConfig,
sriEnabled,
})
: Promise.resolve([])
@@ -2149,7 +2143,6 @@ export default async function build(
originalAppPath,
distDir,
configFileName,
- runtimeEnvConfig,
httpAgentOptions: config.httpAgentOptions,
locales: config.i18n?.locales,
defaultLocale: config.i18n?.defaultLocale,
diff --git a/packages/next/src/build/templates/edge-ssr.ts b/packages/next/src/build/templates/edge-ssr.ts
index f1002b14b84639..3aad16017f99e4 100644
--- a/packages/next/src/build/templates/edge-ssr.ts
+++ b/packages/next/src/build/templates/edge-ssr.ts
@@ -155,12 +155,6 @@ async function requestHandler(
distDir: '',
crossOrigin: nextConfig.crossOrigin ? nextConfig.crossOrigin : undefined,
largePageDataBytes: nextConfig.experimental.largePageDataBytes,
- // Only the `publicRuntimeConfig` key is exposed to the client side
- // It'll be rendered as part of __NEXT_DATA__ on the client side
- runtimeConfig:
- Object.keys(nextConfig.publicRuntimeConfig).length > 0
- ? nextConfig.publicRuntimeConfig
- : undefined,
isExperimentalCompile: nextConfig.experimental.isExperimentalCompile,
// `htmlLimitedBots` is passed to server as serialized config in string format
diff --git a/packages/next/src/build/utils.ts b/packages/next/src/build/utils.ts
index 5a53f8cb914e7b..3eea128cd5f46c 100644
--- a/packages/next/src/build/utils.ts
+++ b/packages/next/src/build/utils.ts
@@ -568,7 +568,6 @@ export async function isPageStatic({
page,
distDir,
configFileName,
- runtimeEnvConfig,
httpAgentOptions,
locales,
defaultLocale,
@@ -595,7 +594,6 @@ export async function isPageStatic({
cacheComponents: boolean
authInterrupts: boolean
configFileName: string
- runtimeEnvConfig: any
httpAgentOptions: NextConfigComplete['httpAgentOptions']
locales?: readonly string[]
defaultLocale?: string
@@ -645,9 +643,6 @@ export async function isPageStatic({
const isPageStaticSpan = trace('is-page-static-utils', parentId)
return isPageStaticSpan
.traceAsyncFn(async (): Promise => {
- ;(
- require('../shared/lib/runtime-config.external') as typeof import('../shared/lib/runtime-config.external')
- ).setConfig(runtimeEnvConfig)
setHttpClientAndAgentOptions({
httpAgentOptions,
})
@@ -956,20 +951,14 @@ export function reduceAppConfig(
export async function hasCustomGetInitialProps({
page,
distDir,
- runtimeEnvConfig,
checkingApp,
sriEnabled,
}: {
page: string
distDir: string
- runtimeEnvConfig: any
checkingApp: boolean
sriEnabled: boolean
}): Promise {
- ;(
- require('../shared/lib/runtime-config.external') as typeof import('../shared/lib/runtime-config.external')
- ).setConfig(runtimeEnvConfig)
-
const { ComponentMod } = await loadComponents({
distDir,
page: page,
@@ -992,17 +981,12 @@ export async function hasCustomGetInitialProps({
export async function getDefinedNamedExports({
page,
distDir,
- runtimeEnvConfig,
sriEnabled,
}: {
page: string
distDir: string
- runtimeEnvConfig: any
sriEnabled: boolean
}): Promise> {
- ;(
- require('../shared/lib/runtime-config.external') as typeof import('../shared/lib/runtime-config.external')
- ).setConfig(runtimeEnvConfig)
const { ComponentMod } = await loadComponents({
distDir,
page: page,
diff --git a/packages/next/src/client/index.tsx b/packages/next/src/client/index.tsx
index d63875b6b05905..81fdc33f88e959 100644
--- a/packages/next/src/client/index.tsx
+++ b/packages/next/src/client/index.tsx
@@ -20,7 +20,6 @@ import {
urlQueryToSearchParams,
assign,
} from '../shared/lib/router/utils/querystring'
-import { setConfig } from '../shared/lib/runtime-config.external'
import { getURL, loadGetInitialProps, ST } from '../shared/lib/utils'
import type { NextWebVitalsMetric, NEXT_DATA } from '../shared/lib/utils'
import { Portal } from './portal'
@@ -212,12 +211,6 @@ export async function initialize(opts: { devClient?: any } = {}): Promise<{
// So, this is how we do it in the client side at runtime
;(self as any).__next_set_public_path__(`${prefix}/_next/`) //eslint-disable-line
- // Initialize next/config with the environment configuration
- setConfig({
- serverRuntimeConfig: {},
- publicRuntimeConfig: initialData.runtimeConfig || {},
- })
-
asPath = getURL()
// make sure not to attempt stripping basePath for 404s
diff --git a/packages/next/src/export/index.ts b/packages/next/src/export/index.ts
index d3a2b5aaec025d..d6a15330c1d05f 100644
--- a/packages/next/src/export/index.ts
+++ b/packages/next/src/export/index.ts
@@ -422,12 +422,6 @@ async function exportAppImpl(
nextConfig.experimental.enablePrerenderSourceMaps === true,
}
- const { publicRuntimeConfig } = nextConfig
-
- if (Object.keys(publicRuntimeConfig).length > 0) {
- renderOpts.runtimeConfig = publicRuntimeConfig
- }
-
// We need this for server rendering the Link component.
;(globalThis as any).__NEXT_DATA__ = {
nextExport: true,
diff --git a/packages/next/src/export/types.ts b/packages/next/src/export/types.ts
index 795202731dd480..8a27f76b269ec1 100644
--- a/packages/next/src/export/types.ts
+++ b/packages/next/src/export/types.ts
@@ -54,7 +54,6 @@ export interface ExportPageInput {
ampValidatorPath?: string
trailingSlash?: boolean
buildExport?: boolean
- serverRuntimeConfig: { [key: string]: any }
subFolders?: boolean
optimizeCss: any
disableOptimizedLoading: any
diff --git a/packages/next/src/export/worker.ts b/packages/next/src/export/worker.ts
index 2a7f0d265aa0d0..c29ad8f1eae0cf 100644
--- a/packages/next/src/export/worker.ts
+++ b/packages/next/src/export/worker.ts
@@ -50,10 +50,6 @@ import type { PagesRenderContext, PagesSharedContext } from '../server/render'
import type { AppSharedContext } from '../server/app-render/app-render'
import { MultiFileWriter } from '../lib/multi-file-writer'
import { createRenderResumeDataCache } from '../server/resume-data-cache/resume-data-cache'
-
-const envConfig =
- require('../shared/lib/runtime-config.external') as typeof import('../shared/lib/runtime-config.external')
-
;(globalThis as any).__NEXT_DATA__ = {
nextExport: true,
}
@@ -75,7 +71,6 @@ async function exportPageImpl(
distDir,
pagesDataDir,
buildExport = false,
- serverRuntimeConfig,
subFolders = false,
optimizeCss,
disableOptimizedLoading,
@@ -196,11 +191,6 @@ async function exportPageImpl(
addRequestMeta(req, 'isLocaleDomain', true)
}
- envConfig.setConfig({
- serverRuntimeConfig,
- publicRuntimeConfig: commonRenderOpts.runtimeConfig,
- })
-
const getHtmlFilename = (p: string) =>
subFolders ? `${p}${sep}index.html` : `${p}.html`
@@ -416,7 +406,6 @@ export async function exportPages(
ampValidatorPath:
nextConfig.experimental.amp?.validator || undefined,
trailingSlash: nextConfig.trailingSlash,
- serverRuntimeConfig: nextConfig.serverRuntimeConfig,
subFolders: nextConfig.trailingSlash && !options.buildExport,
buildExport: options.buildExport,
optimizeCss: nextConfig.experimental.optimizeCss,
diff --git a/packages/next/src/server/base-server.ts b/packages/next/src/server/base-server.ts
index 2c5bd0438d0029..35f7ee4a76b03e 100644
--- a/packages/next/src/server/base-server.ts
+++ b/packages/next/src/server/base-server.ts
@@ -57,7 +57,6 @@ import {
UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,
} from '../shared/lib/constants'
import { isDynamicRoute } from '../shared/lib/router/utils'
-import { setConfig } from '../shared/lib/runtime-config.external'
import { execOnce } from '../shared/lib/utils'
import { isBlockedPage } from './utils'
import { getBotType, isBot } from '../shared/lib/router/utils/is-bot'
@@ -475,14 +474,7 @@ export default abstract class Server<
? new LocaleRouteNormalizer(this.i18nProvider)
: undefined
- // Only serverRuntimeConfig needs the default
- // publicRuntimeConfig gets it's default in client/index.js
- const {
- serverRuntimeConfig = {},
- publicRuntimeConfig,
- assetPrefix,
- generateEtags,
- } = this.nextConfig
+ const { assetPrefix, generateEtags } = this.nextConfig
this.buildId = this.getBuildId()
// this is a hack to avoid Webpack knowing this is equal to this.minimalMode
@@ -551,12 +543,6 @@ export default abstract class Server<
? this.nextConfig.crossOrigin
: undefined,
largePageDataBytes: this.nextConfig.experimental.largePageDataBytes,
- // Only the `publicRuntimeConfig` key is exposed to the client side
- // It'll be rendered as part of __NEXT_DATA__ on the client side
- runtimeConfig:
- Object.keys(publicRuntimeConfig).length > 0
- ? publicRuntimeConfig
- : undefined,
isExperimentalCompile: this.nextConfig.experimental.isExperimentalCompile,
// `htmlLimitedBots` is passed to server as serialized config in string format
@@ -583,12 +569,6 @@ export default abstract class Server<
reactMaxHeadersLength: this.nextConfig.reactMaxHeadersLength,
}
- // Initialize next/config with the environment configuration
- setConfig({
- serverRuntimeConfig,
- publicRuntimeConfig,
- })
-
this.pagesManifest = this.getPagesManifest()
this.appPathsManifest = this.getAppPathsManifest()
this.appPathRoutes = this.getAppPathRoutes()
diff --git a/packages/next/src/server/config-schema.ts b/packages/next/src/server/config-schema.ts
index 3459d3fcba47e0..e7769094cd1c2c 100644
--- a/packages/next/src/server/config-schema.ts
+++ b/packages/next/src/server/config-schema.ts
@@ -685,7 +685,6 @@ export const configSchema: zod.ZodType = z.lazy(() =>
pageExtensions: z.array(z.string()).min(1).optional(),
poweredByHeader: z.boolean().optional(),
productionBrowserSourceMaps: z.boolean().optional(),
- publicRuntimeConfig: z.record(z.string(), z.any()).optional(),
reactProductionProfiling: z.boolean().optional(),
reactStrictMode: z.boolean().nullable().optional(),
reactMaxHeadersLength: z.number().nonnegative().int().optional(),
@@ -718,7 +717,6 @@ export const configSchema: zod.ZodType = z.lazy(() =>
.catchall(z.any())
.optional(),
serverExternalPackages: z.array(z.string()).optional(),
- serverRuntimeConfig: z.record(z.string(), z.any()).optional(),
skipMiddlewareUrlNormalize: z.boolean().optional(),
skipTrailingSlashRedirect: z.boolean().optional(),
staticPageGenerationTimeout: z.number().optional(),
diff --git a/packages/next/src/server/config-shared.ts b/packages/next/src/server/config-shared.ts
index 59ccc2249c89eb..d95a27c8a2ac85 100644
--- a/packages/next/src/server/config-shared.ts
+++ b/packages/next/src/server/config-shared.ts
@@ -1129,20 +1129,6 @@ export interface NextConfig extends Record {
*/
reactMaxHeadersLength?: number
- /**
- * Add public (in browser) runtime configuration to your app
- *
- * @see [Runtime configuration](https://nextjs.org/docs/pages/api-reference/config/next-config-js/runtime-configuration
- */
- publicRuntimeConfig?: { [key: string]: any }
-
- /**
- * Add server runtime configuration to your app
- *
- * @see [Runtime configuration](https://nextjs.org/docs/pages/api-reference/config/next-config-js/runtime-configuration
- */
- serverRuntimeConfig?: { [key: string]: any }
-
/**
* Next.js enables HTTP Keep-Alive by default.
* You may want to disable HTTP Keep-Alive for certain `fetch()` calls or globally.
@@ -1361,8 +1347,6 @@ export const defaultConfig = Object.freeze({
i18n: null,
productionBrowserSourceMaps: false,
excludeDefaultMomentLocales: true,
- serverRuntimeConfig: {},
- publicRuntimeConfig: {},
reactProductionProfiling: false,
reactStrictMode: null,
reactMaxHeadersLength: 6000,
diff --git a/packages/next/src/server/dev/next-dev-server.ts b/packages/next/src/server/dev/next-dev-server.ts
index df7f323082e5c1..e3febaca236cf2 100644
--- a/packages/next/src/server/dev/next-dev-server.ts
+++ b/packages/next/src/server/dev/next-dev-server.ts
@@ -804,12 +804,7 @@ export default class DevServer extends Server {
// from waiting on them for the page to load in dev mode
const __getStaticPaths = async () => {
- const {
- configFileName,
- publicRuntimeConfig,
- serverRuntimeConfig,
- httpAgentOptions,
- } = this.nextConfig
+ const { configFileName, httpAgentOptions } = this.nextConfig
const { locales, defaultLocale } = this.nextConfig.i18n || {}
const staticPathsWorker = this.getStaticPathsWorker()
@@ -821,8 +816,6 @@ export default class DevServer extends Server {
config: {
pprConfig: this.nextConfig.experimental.ppr,
configFileName,
- publicRuntimeConfig,
- serverRuntimeConfig,
cacheComponents: Boolean(
this.nextConfig.experimental.cacheComponents
),
diff --git a/packages/next/src/server/dev/static-paths-worker.ts b/packages/next/src/server/dev/static-paths-worker.ts
index 227933c08fe22b..72023e2e42a707 100644
--- a/packages/next/src/server/dev/static-paths-worker.ts
+++ b/packages/next/src/server/dev/static-paths-worker.ts
@@ -25,8 +25,6 @@ import type { AppRouteRouteModule } from '../route-modules/app-route/module'
type RuntimeConfig = {
pprConfig: ExperimentalPPRConfig | undefined
configFileName: string
- publicRuntimeConfig: { [key: string]: any }
- serverRuntimeConfig: { [key: string]: any }
cacheComponents: boolean
}
@@ -92,9 +90,6 @@ export async function loadStaticPaths({
})
// update work memory runtime-config
- ;(
- require('../../shared/lib/runtime-config.external') as typeof import('../../shared/lib/runtime-config.external')
- ).setConfig(config)
setHttpClientAndAgentOptions({
httpAgentOptions,
})
diff --git a/packages/next/src/server/lib/router-utils/router-server-context.ts b/packages/next/src/server/lib/router-utils/router-server-context.ts
index 568be2acae75fb..eaeafcc6eb56a2 100644
--- a/packages/next/src/server/lib/router-utils/router-server-context.ts
+++ b/packages/next/src/server/lib/router-utils/router-server-context.ts
@@ -28,8 +28,6 @@ export type RouterServerContext = Record<
parsedUrl?: UrlWithParsedQuery,
setHeaders?: boolean
) => Promise
- // current loaded public runtime config
- publicRuntimeConfig?: NextConfigComplete['publicRuntimeConfig']
// exposing nextConfig for dev mode specifically
nextConfig?: NextConfigComplete
// whether running in custom server mode
diff --git a/packages/next/src/server/render.tsx b/packages/next/src/server/render.tsx
index 6d9df62d3bf976..5a93b9bb0c015c 100644
--- a/packages/next/src/server/render.tsx
+++ b/packages/next/src/server/render.tsx
@@ -243,7 +243,6 @@ function renderPageTree(
export type RenderOptsPartial = {
canonicalBase: string
- runtimeConfig?: { [key: string]: any }
assetPrefix?: string
err?: Error | null
nextExport?: boolean
@@ -1491,7 +1490,6 @@ export async function renderToHTMLImpl(
domainLocales,
locale,
locales,
- runtimeConfig,
} = renderOpts
const htmlProps: HtmlProps = {
__NEXT_DATA__: {
@@ -1500,7 +1498,6 @@ export async function renderToHTMLImpl(
query, // querystring parsed / passed by the user
buildId: sharedContext.buildId,
assetPrefix: assetPrefix === '' ? undefined : assetPrefix, // send assetPrefix to the client side when configured, otherwise don't sent in the resulting HTML
- runtimeConfig, // runtimeConfig if provided, otherwise don't sent in the resulting HTML
nextExport: nextExport === true ? true : undefined, // If this is a page exported by `next export`
autoExport: isAutoExport === true ? true : undefined, // If this is an auto exported page
isFallback,
diff --git a/packages/next/src/server/route-modules/pages/pages-handler.ts b/packages/next/src/server/route-modules/pages/pages-handler.ts
index 686fcc80b3dea9..a113676e97c469 100644
--- a/packages/next/src/server/route-modules/pages/pages-handler.ts
+++ b/packages/next/src/server/route-modules/pages/pages-handler.ts
@@ -204,10 +204,6 @@ export const getHandler = ({
query: hasStaticProps ? {} : originalQuery,
})
- const publicRuntimeConfig: Record =
- routerServerContext?.publicRuntimeConfig ||
- nextConfig.publicRuntimeConfig
-
const handleResponse = async (span?: Span) => {
const responseGenerator: ResponseGenerator = async ({
previousCacheEntry,
@@ -282,12 +278,6 @@ export const getHandler = ({
nextConfig.experimental.disableOptimizedLoading,
largePageDataBytes:
nextConfig.experimental.largePageDataBytes,
- // Only the `publicRuntimeConfig` key is exposed to the client side
- // It'll be rendered as part of __NEXT_DATA__ on the client side
- runtimeConfig:
- Object.keys(publicRuntimeConfig).length > 0
- ? publicRuntimeConfig
- : undefined,
isExperimentalCompile,
diff --git a/packages/next/src/shared/lib/runtime-config.external.ts b/packages/next/src/shared/lib/runtime-config.external.ts
deleted file mode 100644
index b4a48a362d6382..00000000000000
--- a/packages/next/src/shared/lib/runtime-config.external.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-let runtimeConfig: any
-
-export default () => {
- return runtimeConfig
-}
-
-export function setConfig(configValue: any): void {
- runtimeConfig = configValue
-}
diff --git a/packages/next/src/shared/lib/utils.ts b/packages/next/src/shared/lib/utils.ts
index abc5d6da627f39..7a5ff10744ae93 100644
--- a/packages/next/src/shared/lib/utils.ts
+++ b/packages/next/src/shared/lib/utils.ts
@@ -91,7 +91,6 @@ export type NEXT_DATA = {
query: ParsedUrlQuery
buildId: string
assetPrefix?: string
- runtimeConfig?: { [key: string]: any }
nextExport?: boolean
autoExport?: boolean
isFallback?: boolean
diff --git a/test/integration/config-mjs/next.config.mjs b/test/integration/config-mjs/next.config.mjs
index 84b5831fc866ef..a26eb8fbda653c 100644
--- a/test/integration/config-mjs/next.config.mjs
+++ b/test/integration/config-mjs/next.config.mjs
@@ -4,12 +4,6 @@ export default {
maxInactiveAge: 1000 * 60 * 60,
},
poweredByHeader: false,
- serverRuntimeConfig: {
- mySecret: 'secret',
- },
- publicRuntimeConfig: {
- staticFolder: '/static',
- },
env: {
customVar: 'hello',
},
diff --git a/test/integration/config-mjs/pages/next-config.js b/test/integration/config-mjs/pages/next-config.js
index 945aeba52da338..da615fabbe425b 100644
--- a/test/integration/config-mjs/pages/next-config.js
+++ b/test/integration/config-mjs/pages/next-config.js
@@ -1,10 +1,5 @@
-import getConfig from 'next/config'
-const { serverRuntimeConfig, publicRuntimeConfig } = getConfig()
-
export default () => (