diff --git a/packages/next/src/build/index.ts b/packages/next/src/build/index.ts index a7b27a78cf6d..b7f62f93d4f9 100644 --- a/packages/next/src/build/index.ts +++ b/packages/next/src/build/index.ts @@ -2989,8 +2989,7 @@ export default async function build( } // remove temporary export folder - await recursiveDelete(exportOptions.outdir) - await fs.rmdir(exportOptions.outdir) + await fs.rm(exportOptions.outdir, { recursive: true, force: true }) await fs.writeFile( manifestPath, JSON.stringify(pagesManifest, null, 2), diff --git a/packages/next/src/build/utils.ts b/packages/next/src/build/utils.ts index b0c62248223b..9cde31aec24f 100644 --- a/packages/next/src/build/utils.ts +++ b/packages/next/src/build/utils.ts @@ -53,7 +53,6 @@ import { } from '../server/load-components' import { trace } from '../trace' import { setHttpClientAndAgentOptions } from '../server/setup-http-agent-env' -import { recursiveDelete } from '../lib/recursive-delete' import { Sema } from 'next/dist/compiled/async-sema' import { denormalizePagePath } from '../shared/lib/page-path/denormalize-page-path' import { normalizePagePath } from '../shared/lib/page-path/normalize-page-path' @@ -1809,7 +1808,7 @@ export async function copyTracedFiles( moduleType = packageJson.type === 'module' } catch {} const copiedFiles = new Set() - await recursiveDelete(outputPath) + await fs.rm(outputPath, { recursive: true, force: true }) async function handleTraceFiles(traceFilePath: string) { const traceData = JSON.parse(await fs.readFile(traceFilePath, 'utf8')) as { diff --git a/packages/next/src/export/index.ts b/packages/next/src/export/index.ts index 5f15d3fcf5d1..209855a8a033 100644 --- a/packages/next/src/export/index.ts +++ b/packages/next/src/export/index.ts @@ -17,7 +17,6 @@ import * as Log from '../build/output/log' import createSpinner from '../build/spinner' import { SSG_FALLBACK_EXPORT_ERROR } from '../lib/constants' import { recursiveCopy } from '../lib/recursive-copy' -import { recursiveDelete } from '../lib/recursive-delete' import { BUILD_ID_FILE, CLIENT_PUBLIC_FILES_PATH, @@ -354,7 +353,7 @@ export default async function exportApp( ) } - await recursiveDelete(join(outDir)) + await promises.rm(outDir, { recursive: true, force: true }) await promises.mkdir(join(outDir, '_next', buildId), { recursive: true }) writeFileSync( diff --git a/packages/next/src/lib/verify-partytown-setup.ts b/packages/next/src/lib/verify-partytown-setup.ts index 5f4caf378e7d..69ee2132efba 100644 --- a/packages/next/src/lib/verify-partytown-setup.ts +++ b/packages/next/src/lib/verify-partytown-setup.ts @@ -8,7 +8,6 @@ import { } from './has-necessary-dependencies' import { fileExists, FileType } from './file-exists' import { FatalError } from './fatal-error' -import { recursiveDelete } from './recursive-delete' import * as Log from '../build/output/log' import { getPkgManager } from './helpers/get-pkg-manager' @@ -50,8 +49,7 @@ async function copyPartytownStaticFiles( ) if (hasPartytownLibDir) { - await recursiveDelete(partytownLibDir) - await promises.rmdir(partytownLibDir) + await promises.rm(partytownLibDir, { recursive: true, force: true }) } const { copyLibFiles } = await Promise.resolve( diff --git a/packages/next/src/server/image-optimizer.ts b/packages/next/src/server/image-optimizer.ts index 00dee16194d9..a7e9928de4a0 100644 --- a/packages/next/src/server/image-optimizer.ts +++ b/packages/next/src/server/image-optimizer.ts @@ -99,15 +99,8 @@ async function writeToCacheDir( ) { const filename = join(dir, `${maxAge}.${expireAt}.${etag}.${extension}`) - // Added in: v14.14.0 https://nodejs.org/api/fs.html#fspromisesrmpath-options - // attempt cleaning up existing stale cache - if ((promises as any).rm) { - await (promises as any) - .rm(dir, { force: true, recursive: true }) - .catch(() => {}) - } else { - await promises.rmdir(dir, { recursive: true }).catch(() => {}) - } + await promises.rm(dir, { recursive: true, force: true }).catch(() => {}) + await promises.mkdir(dir, { recursive: true }) await promises.writeFile(filename, buffer) }