Files

40 lines
1.2 KiB
JavaScript

#!/usr/bin/env node
const { execSync } = require("child_process")
const fs = require("fs")
const path = require("path")
const root = path.resolve(__dirname, "..")
const standaloneDir = path.join(root, ".next", "standalone")
const staticSrc = path.join(root, ".next", "static")
const staticDst = path.join(standaloneDir, ".next", "static")
if (!fs.existsSync(standaloneDir)) {
console.error("ERROR: .next/standalone/ not found. Run 'npm run build' first.")
process.exit(1)
}
fs.rmSync(staticDst, { recursive: true, force: true })
fs.cpSync(staticSrc, staticDst, { recursive: true })
console.log("Synced static files to standalone output...")
const server = path.join(standaloneDir, "server.js")
if (!fs.existsSync(server)) {
console.error("ERROR: server.js not found in standalone output.")
process.exit(1)
}
process.env.NODE_ENV = "production"
const args = process.argv.slice(2)
const child = require("child_process").spawn("node", [server, ...args], {
cwd: standaloneDir,
stdio: "inherit",
env: {
...process.env,
PORT: process.env.PORT || "3000",
HOSTNAME: process.env.HOSTNAME || "0.0.0.0",
},
})
child.on("exit", (code) => process.exit(code))