Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eliminate Amp in Edge runtime #39560

Merged
merged 2 commits into from Aug 12, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
45 changes: 31 additions & 14 deletions packages/next/pages/_document.tsx
Expand Up @@ -46,9 +46,10 @@ function getDocumentFiles(
inAmpMode: boolean
): DocumentFiles {
const sharedFiles: readonly string[] = getPageFiles(buildManifest, '/_app')
const pageFiles: readonly string[] = inAmpMode
? []
: getPageFiles(buildManifest, pathname)
const pageFiles: readonly string[] =
process.env.NEXT_RUNTIME !== 'edge' && inAmpMode
? []
: getPageFiles(buildManifest, pathname)

return {
sharedFiles,
Expand Down Expand Up @@ -434,7 +435,11 @@ export class Head extends Component<HeadProps> {
)
}

if (process.env.NODE_ENV !== 'development' && optimizeFonts && !inAmpMode) {
if (
process.env.NODE_ENV !== 'development' &&
optimizeFonts &&
!(process.env.NEXT_RUNTIME !== 'edge' && inAmpMode)
) {
children = this.makeStylesheetInert(children)
}

Expand All @@ -445,7 +450,7 @@ export class Head extends Component<HeadProps> {
head = React.Children.map(head || [], (child) => {
if (!child) return child
const { type, props } = child
if (inAmpMode) {
if (process.env.NEXT_RUNTIME !== 'edge' && inAmpMode) {
let badProp: string = ''

if (type === 'meta' && props.name === 'viewport') {
Expand Down Expand Up @@ -488,7 +493,7 @@ export class Head extends Component<HeadProps> {
const files: DocumentFiles = getDocumentFiles(
this.context.buildManifest,
this.context.__NEXT_DATA__.page,
inAmpMode
process.env.NEXT_RUNTIME !== 'edge' && inAmpMode
)

return (
Expand All @@ -497,14 +502,22 @@ export class Head extends Component<HeadProps> {
<>
<style
data-next-hide-fouc
data-ampdevmode={inAmpMode ? 'true' : undefined}
data-ampdevmode={
process.env.NEXT_RUNTIME !== 'edge' && inAmpMode
? 'true'
: undefined
}
dangerouslySetInnerHTML={{
__html: `body{display:none}`,
}}
/>
<noscript
data-next-hide-fouc
data-ampdevmode={inAmpMode ? 'true' : undefined}
data-ampdevmode={
process.env.NEXT_RUNTIME !== 'edge' && inAmpMode
? 'true'
: undefined
}
>
<style
dangerouslySetInnerHTML={{
Expand All @@ -523,7 +536,7 @@ export class Head extends Component<HeadProps> {
{children}
{optimizeFonts && <meta name="next-font-preconnect" />}

{inAmpMode && (
{process.env.NEXT_RUNTIME !== 'edge' && inAmpMode && (
<>
<meta
name="viewport"
Expand Down Expand Up @@ -559,7 +572,7 @@ export class Head extends Component<HeadProps> {
<script async src="https://cdn.ampproject.org/v0.js" />
</>
)}
{!inAmpMode && (
{!(process.env.NEXT_RUNTIME !== 'edge' && inAmpMode) && (
<>
{!hasAmphtmlRel && hybridAmp && (
<link
Expand Down Expand Up @@ -938,7 +951,7 @@ export class NextScript extends Component<OriginProps> {

docComponentsRendered.NextScript = true

if (inAmpMode) {
if (process.env.NEXT_RUNTIME !== 'edge' && inAmpMode) {
if (process.env.NODE_ENV === 'production') {
return null
}
Expand Down Expand Up @@ -985,7 +998,7 @@ export class NextScript extends Component<OriginProps> {
const files: DocumentFiles = getDocumentFiles(
this.context.buildManifest,
this.context.__NEXT_DATA__.page,
inAmpMode
process.env.NEXT_RUNTIME !== 'edge' && inAmpMode
)

return (
Expand Down Expand Up @@ -1091,9 +1104,13 @@ export function Html(
<html
{...props}
lang={props.lang || locale || undefined}
amp={inAmpMode ? '' : undefined}
amp={process.env.NEXT_RUNTIME !== 'edge' && inAmpMode ? '' : undefined}
data-ampdevmode={
inAmpMode && process.env.NODE_ENV !== 'production' ? '' : undefined
process.env.NEXT_RUNTIME !== 'edge' &&
inAmpMode &&
process.env.NODE_ENV !== 'production'
? ''
: undefined
}
/>
)
Expand Down