Fix harness crash: load standalone config to skip webpack in production
The standalone next package is trimmed and doesn't include webpack. The custom server.js was using next() which triggers config loading that requires webpack. Fix by extracting the standalone config at build time and setting __NEXT_PRIVATE_STANDALONE_CONFIG before requiring next, matching what the generated standalone server does.
This commit is contained in:
@@ -1,13 +1,26 @@
|
||||
const { createServer } = require("http");
|
||||
const path = require("path");
|
||||
const { parse } = require("url");
|
||||
const next = require("next");
|
||||
const { attachPtyWebSocket } = require("./pty-server");
|
||||
|
||||
const dev = process.env.NODE_ENV !== "production";
|
||||
const hostname = process.env.HOSTNAME || "0.0.0.0";
|
||||
const port = parseInt(process.env.PORT || "3100", 10);
|
||||
|
||||
const app = next({ dev, hostname, port });
|
||||
// In production, load the standalone config to avoid webpack dependency
|
||||
if (!dev) {
|
||||
try {
|
||||
const configPath = path.join(__dirname, "next-config.json");
|
||||
const nextConfig = JSON.parse(require("fs").readFileSync(configPath, "utf8"));
|
||||
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig);
|
||||
} catch {
|
||||
// Config not found (local dev) — next() will load config normally
|
||||
}
|
||||
}
|
||||
|
||||
const next = require("next");
|
||||
const { attachPtyWebSocket } = require("./pty-server");
|
||||
|
||||
const app = next({ dev, hostname, port, dir: __dirname });
|
||||
const handle = app.getRequestHandler();
|
||||
|
||||
app.prepare().then(() => {
|
||||
|
||||
Reference in New Issue
Block a user