From 5a33c503213265455707aab8796444f601b7d268 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 13 Oct 2023 15:45:47 -0700 Subject: [PATCH 1/2] Fix build traces case --- packages/next/src/build/collect-build-traces.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/next/src/build/collect-build-traces.ts b/packages/next/src/build/collect-build-traces.ts index c0b60922cb97c..193ea57a78bba 100644 --- a/packages/next/src/build/collect-build-traces.ts +++ b/packages/next/src/build/collect-build-traces.ts @@ -24,6 +24,7 @@ import { defaultOverrides } from '../server/require-hook' import { nodeFileTrace } from 'next/dist/compiled/@vercel/nft' import { normalizePagePath } from '../shared/lib/page-path/normalize-page-path' import { normalizeAppPath } from '../shared/lib/router/utils/app-paths' +import isError from '../lib/is-error' const debug = debugOriginal('next:build:build-traces') @@ -339,6 +340,16 @@ export async function collectBuildTraces({ base: outputFileTracingRoot, processCwd: dir, mixedModules: true, + async readFile(p) { + try { + return await fs.readFile(p, 'utf8') + } catch (e) { + if (isError(e) && (e.code === 'ENOENT' || e.code === 'EISDIR')) { + return null + } + throw e + } + }, }) const reasons = result.reasons const fileList = result.fileList From 325589ada4fe29804b893642bc2c6083c769c821 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Fri, 13 Oct 2023 16:07:54 -0700 Subject: [PATCH 2/2] other methods --- .../next/src/build/collect-build-traces.ts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/packages/next/src/build/collect-build-traces.ts b/packages/next/src/build/collect-build-traces.ts index 193ea57a78bba..c1fb4cc983672 100644 --- a/packages/next/src/build/collect-build-traces.ts +++ b/packages/next/src/build/collect-build-traces.ts @@ -345,6 +345,35 @@ export async function collectBuildTraces({ return await fs.readFile(p, 'utf8') } catch (e) { if (isError(e) && (e.code === 'ENOENT' || e.code === 'EISDIR')) { + // handle temporary internal webpack files + if (p.match(/static[/\\]media/)) { + return '' + } + return null + } + throw e + } + }, + async readlink(p) { + try { + return await fs.readlink(p) + } catch (e) { + if ( + isError(e) && + (e.code === 'EINVAL' || + e.code === 'ENOENT' || + e.code === 'UNKNOWN') + ) { + return null + } + throw e + } + }, + async stat(p) { + try { + return await fs.stat(p) + } catch (e) { + if (isError(e) && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) { return null } throw e