cloudflare/vinext

Pages Router: custom `_document` (`getInitialProps` / `renderPage` enhancers) not implemented

Open

#1,468 建立於 2026年5月22日

在 GitHub 查看
 (0 留言) (0 反應) (0 負責人)TypeScript (329 fork)github user discovery
adapter-api-e2ehelp wanted

倉庫指標

Star
 (8,120 star)
PR 合併指標
 (平均合併 1天 1小時) (30 天內合併 462 個 PR)

描述

This issue was created by an agent analysing CI failures from the Next.js Deploy Suite (vinext main vs Next.js v16.2.6, 2026-05-22).

Problem

Tests for Pages Router custom _document.js fail because vinext does not run Document.getInitialProps or honor ctx.renderPage({ enhanceApp, enhanceComponent }). As a result <Document> does not receive the expected html prop, custom enhancers never run, and nonce/crossOrigin attributes are missing on emitted scripts.

Document.getInitialProps did not run; renderPage enhanceApp/enhanceComponent did not run

Estimated Impact

~8 test failures across the deploy suite.

Affected Test Suites

  • test/e2e/app-document/rendering.test.ts (8 failures)

Recommendation

  1. Reproduce first in vinext's own test suite. Add a Pages Router app with a custom _document.tsx exporting getInitialProps plus renderPage({ enhanceApp, enhanceComponent }). Assert each hook runs and the produced HTML reflects it.

  2. Study .nextjs-ref/packages/next/src/server/render.tsx. Understand the _document lifecycle: getInitialProps with ctx.renderPage, the enhanceApp/enhanceComponent contract, and how nonce/crossOrigin propagate to emitted <script> tags.

  3. Implement the Pages Router _document pipeline. Run Document.getInitialProps, support ctx.renderPage({ enhanceApp, enhanceComponent }), propagate nonce and crossOrigin to script tags.

貢獻者指南