From a5e6e820cd8f873eac470a1d0f34bd47dbc498a3 Mon Sep 17 00:00:00 2001 From: Shu Ding Date: Sat, 27 Aug 2022 17:15:35 +0200 Subject: [PATCH] do not bundle next/script by default --- packages/next/client/script.tsx | 2 ++ packages/next/pages/_document.tsx | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/next/client/script.tsx b/packages/next/client/script.tsx index 33223afe0f32..2bad3c728171 100644 --- a/packages/next/client/script.tsx +++ b/packages/next/client/script.tsx @@ -207,4 +207,6 @@ function Script(props: ScriptProps): JSX.Element | null { return null } +Object.defineProperty(Script, '__nextScript', { value: true }) + export default Script diff --git a/packages/next/pages/_document.tsx b/packages/next/pages/_document.tsx index b0a4a65f38a7..9d601b89bd55 100644 --- a/packages/next/pages/_document.tsx +++ b/packages/next/pages/_document.tsx @@ -10,10 +10,10 @@ import type { DocumentType, NEXT_DATA, } from '../shared/lib/utils' +import type { ScriptProps } from '../client/script' + import { BuildManifest, getPageFiles } from '../server/get-page-files' -import { cleanAmpPath } from '../server/utils' import { htmlEscapeJsonString } from '../server/htmlescape' -import Script, { ScriptProps } from '../client/script' import isError from '../lib/is-error' import { HtmlContext } from '../shared/lib/html-context' @@ -765,7 +765,10 @@ export class Head extends Component { {!hasCanonicalRel && ( )} {/* https://www.ampproject.org/docs/fundamentals/optimize_amp#optimize-the-amp-runtime-loading */} @@ -871,7 +874,8 @@ function handleDocumentScriptLoaderItems( React.Children.forEach(combinedChildren, (child: any) => { if (!child) return - if (child.type === Script) { + // When using the `next/script` component, register it in script loader. + if (child.type?.__nextScript) { if (child.props.strategy === 'beforeInteractive') { scriptLoader.beforeInteractive = ( scriptLoader.beforeInteractive || []