diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 464ea493b78..58310c1226c 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -99,6 +99,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { }, replace: { 'process.env.NUXT_NO_SSR': nuxt.options.ssr === false, + 'process.env.NUXT_EARLY_HINTS': nuxt.options.experimental.writeEarlyHints !== false, 'process.env.NUXT_NO_SCRIPTS': !!nuxt.options.experimental.noScripts && !nuxt.options.dev, 'process.env.NUXT_INLINE_STYLES': !!nuxt.options.experimental.inlineSSRStyles, 'process.env.NUXT_PAYLOAD_EXTRACTION': !!nuxt.options.experimental.payloadExtraction, diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index baa15acf83e..24199f51e8e 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -157,7 +157,7 @@ export default defineRenderHandler(async (event) => { const renderer = (process.env.NUXT_NO_SSR || ssrContext.noSSR) ? await getSPARenderer() : await getSSRRenderer() // Render 103 Early Hints - if (!isRenderingPayload && !process.env.prerender) { + if (process.env.NUXT_EARLY_HINTS && !isRenderingPayload && !process.env.prerender) { const { link } = renderResourceHeaders({}, renderer.rendererContext) writeEarlyHints(event, link) } diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 25dabdb754f..0c342daaa2f 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -81,6 +81,9 @@ export default defineUntypedSchema({ payloadExtraction: true, /** Enable cross-origin prefetch using the Speculation Rules API. */ - crossOriginPrefetch: false + crossOriginPrefetch: false, + + /** Write early hints when using node server */ + writeEarlyHints: true } })