diff --git a/packages/next/build/index.ts b/packages/next/build/index.ts index bf2053faeab2..4d4307882bf0 100644 --- a/packages/next/build/index.ts +++ b/packages/next/build/index.ts @@ -773,6 +773,7 @@ export default async function build(dir: string, conf = null): Promise { durationInSeconds: analysisEnd[0], staticPageCount: staticPages.size, ssrPageCount: pagePaths.length - staticPages.size, + hasStatic404: useStatic404, }) ) diff --git a/packages/next/telemetry/events/build.ts b/packages/next/telemetry/events/build.ts index 7ea9f882a2e9..8ab16b812ae2 100644 --- a/packages/next/telemetry/events/build.ts +++ b/packages/next/telemetry/events/build.ts @@ -40,6 +40,7 @@ type EventBuildOptimized = { ssrPageCount: number hasDunderPages: boolean hasTestPages: boolean + hasStatic404: boolean } export function eventBuildOptimize( diff --git a/test/integration/telemetry/test/index.test.js b/test/integration/telemetry/test/index.test.js index 32b0979b71cd..51ccb25fa1c0 100644 --- a/test/integration/telemetry/test/index.test.js +++ b/test/integration/telemetry/test/index.test.js @@ -8,6 +8,7 @@ import { findPort, killApp, waitFor, + nextBuild, } from 'next-test-utils' jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000 * 60 * 2 @@ -117,6 +118,16 @@ describe('Telemetry CLI', () => { expect(event2).toMatch(/hasTestPages.*?true/) }) + it('detect static 404 correctly for `next build`', async () => { + const { stderr } = await nextBuild(appDir, [], { + stderr: true, + env: { NEXT_TELEMETRY_DEBUG: 1 }, + }) + + const event1 = /NEXT_BUILD_OPTIMIZED[\s\S]+?{([\s\S]+?)}/.exec(stderr).pop() + expect(event1).toMatch(/hasStatic404.*?true/) + }) + it('detects isSrcDir dir correctly for `next dev`', async () => { let port = await findPort() let stderr = ''