From f6dcba0407db1ecb0a54ae64c8bfe6a1e364696c Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 1 Jun 2022 19:27:12 -0400 Subject: [PATCH 1/2] Fix bloat in main bundle from amp --- test/integration/production/test/index.test.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/integration/production/test/index.test.js b/test/integration/production/test/index.test.js index 33029d2b957de..f4782940d05b8 100644 --- a/test/integration/production/test/index.test.js +++ b/test/integration/production/test/index.test.js @@ -313,6 +313,23 @@ describe('Production Usage', () => { expect(content).not.toContain('.currentScript') }) + it('should not contain useAmp in main chunk', async () => { + const globResult = await glob('main-*.js', { + cwd: join(appDir, '.next/static/chunks'), + }) + + if (!globResult || globResult.length !== 1) { + throw new Error('could not find main js chunk') + } + + const content = await fs.readFile( + join(appDir, '.next/static/chunks', globResult[0]), + 'utf8' + ) + + expect(content).not.toContain('useAmp') + }) + describe('With basic usage', () => { it('should render the page', async () => { const html = await renderViaHTTP(appPort, '/') From 096e20078895c0244000036e9a5c2e9da0ccaba9 Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 1 Jun 2022 19:37:35 -0400 Subject: [PATCH 2/2] Fix the bug :shipit: --- packages/next/export/worker.ts | 2 +- packages/next/server/render.tsx | 2 +- packages/next/shared/lib/amp-mode.ts | 7 +++++++ packages/next/shared/lib/amp.ts | 9 +-------- packages/next/shared/lib/head.tsx | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 packages/next/shared/lib/amp-mode.ts diff --git a/packages/next/export/worker.ts b/packages/next/export/worker.ts index 41331ca75e409..08c3c14fcacd9 100644 --- a/packages/next/export/worker.ts +++ b/packages/next/export/worker.ts @@ -19,7 +19,7 @@ import '../server/node-polyfill-fetch' import { requireFontManifest } from '../server/require' import { normalizeLocalePath } from '../shared/lib/i18n/normalize-locale-path' import { trace } from '../trace' -import { isInAmpMode } from '../shared/lib/amp' +import { isInAmpMode } from '../shared/lib/amp-mode' import { setHttpAgentOptions } from '../server/config' import RenderResult from '../server/render-result' import isError from '../lib/is-error' diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index 8f0431f442ff1..47de0becba045 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -43,7 +43,7 @@ import { STATIC_STATUS_PAGES, } from '../shared/lib/constants' import { isSerializableProps } from '../lib/is-serializable-props' -import { isInAmpMode } from '../shared/lib/amp' +import { isInAmpMode } from '../shared/lib/amp-mode' import { AmpStateContext } from '../shared/lib/amp-context' import { defaultHead } from '../shared/lib/head' import { HeadManagerContext } from '../shared/lib/head-manager-context' diff --git a/packages/next/shared/lib/amp-mode.ts b/packages/next/shared/lib/amp-mode.ts new file mode 100644 index 0000000000000..234cdc3343a78 --- /dev/null +++ b/packages/next/shared/lib/amp-mode.ts @@ -0,0 +1,7 @@ +export function isInAmpMode({ + ampFirst = false, + hybrid = false, + hasQuery = false, +} = {}): boolean { + return ampFirst || (hybrid && hasQuery) +} diff --git a/packages/next/shared/lib/amp.ts b/packages/next/shared/lib/amp.ts index 12dbb711fde7c..04518b2389357 100644 --- a/packages/next/shared/lib/amp.ts +++ b/packages/next/shared/lib/amp.ts @@ -1,13 +1,6 @@ import React from 'react' import { AmpStateContext } from './amp-context' - -export function isInAmpMode({ - ampFirst = false, - hybrid = false, - hasQuery = false, -} = {}): boolean { - return ampFirst || (hybrid && hasQuery) -} +import { isInAmpMode } from './amp-mode' export function useAmp(): boolean { // Don't assign the context value to a variable to save bytes diff --git a/packages/next/shared/lib/head.tsx b/packages/next/shared/lib/head.tsx index 004e189643c9a..3875a213cc101 100644 --- a/packages/next/shared/lib/head.tsx +++ b/packages/next/shared/lib/head.tsx @@ -2,7 +2,7 @@ import React, { useContext } from 'react' import Effect from './side-effect' import { AmpStateContext } from './amp-context' import { HeadManagerContext } from './head-manager-context' -import { isInAmpMode } from './amp' +import { isInAmpMode } from './amp-mode' import { warnOnce } from './utils' type WithInAmpMode = {