import { cp, mkdir, rm } from 'node:fs/promises'; import { existsSync } from 'node:fs'; import path from 'node:path'; const root = process.cwd(); const standalone = path.join(root, '.next', 'standalone'); if (!existsSync(standalone)) { throw new Error('Missing .next/standalone. Run next build before preparing the server.'); } const copies = [ [path.join(root, '.next', 'static'), path.join(standalone, '.next', 'static')], [path.join(root, 'public'), path.join(standalone, 'public')], ]; for (const [source, destination] of copies) { if (!existsSync(source)) continue; await rm(destination, { recursive: true, force: true }); await mkdir(path.dirname(destination), { recursive: true }); await cp(source, destination, { recursive: true }); } console.log('Prepared standalone server assets.');