diff --git a/packages/next/pages/_document.tsx b/packages/next/pages/_document.tsx index b9173daf056c..3086c431568c 100644 --- a/packages/next/pages/_document.tsx +++ b/packages/next/pages/_document.tsx @@ -970,7 +970,10 @@ export class NextScript extends Component { const { __NEXT_DATA__, largePageDataBytes } = context try { const data = JSON.stringify(__NEXT_DATA__) - const bytes = Buffer.from(data).byteLength + const bytes = + process.env.NEXT_RUNTIME === 'edge' + ? new TextEncoder().encode(data).buffer.byteLength + : Buffer.from(data).byteLength const prettyBytes = require('../lib/pretty-bytes').default if (largePageDataBytes && bytes > largePageDataBytes) { diff --git a/packages/next/server/post-process.ts b/packages/next/server/post-process.ts index 330172e9e678..0c802b855b17 100644 --- a/packages/next/server/post-process.ts +++ b/packages/next/server/post-process.ts @@ -1,5 +1,6 @@ import type { RenderOpts } from './render' -import { parse, HTMLElement } from 'next/dist/compiled/node-html-parser' +import type { HTMLElement } from 'next/dist/compiled/node-html-parser' + import { OPTIMIZED_FONT_PROVIDERS } from '../shared/lib/constants' import { nonNullable } from '../lib/non-nullable' @@ -7,11 +8,15 @@ let optimizeAmp: typeof import('./optimize-amp').default | undefined let getFontDefinitionFromManifest: | typeof import('./font-utils').getFontDefinitionFromManifest | undefined +let parse: typeof import('next/dist/compiled/node-html-parser').parse if (process.env.NEXT_RUNTIME !== 'edge') { optimizeAmp = require('./optimize-amp').default getFontDefinitionFromManifest = require('./font-utils').getFontDefinitionFromManifest + parse = ( + require('next/dist/compiled/node-html-parser') as typeof import('next/dist/compiled/node-html-parser') + ).parse } type postProcessOptions = {