From ddb7cfd8d6213c053341daf703d0f88db35d6f63 Mon Sep 17 00:00:00 2001 From: Zack Tanner Date: Fri, 1 Sep 2023 15:33:39 -0700 Subject: [PATCH] ensure config is only loaded once --- packages/next/src/bin/next.ts | 19 ++++++++++--------- .../next/src/server/lib/server-ipc/index.ts | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/next/src/bin/next.ts b/packages/next/src/bin/next.ts index 0084b11361ea7..64f6d5491679e 100755 --- a/packages/next/src/bin/next.ts +++ b/packages/next/src/bin/next.ts @@ -135,15 +135,6 @@ async function main() { ) const origEnv = Object.assign({}, process.env) - // TODO: set config to env variable to be re-used so we don't reload - // un-necessarily - const config = await loadConfig( - command === 'dev' ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_SERVER, - dir, - undefined, - undefined, - true - ) let dirsResult: ReturnType | undefined = undefined try { @@ -156,6 +147,16 @@ async function main() { process.env = origEnv } + const config = await loadConfig( + command === 'dev' ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_SERVER, + dir, + undefined, + undefined, + true + ) + + process.env.__NEXT_EXISTING_CONFIG = JSON.stringify(config) + if (dirsResult?.appDir) { // we need to reset env if we are going to create // the worker process with the esm loader so that the diff --git a/packages/next/src/server/lib/server-ipc/index.ts b/packages/next/src/server/lib/server-ipc/index.ts index 8e7bd60a8855d..c6696764b8848 100644 --- a/packages/next/src/server/lib/server-ipc/index.ts +++ b/packages/next/src/server/lib/server-ipc/index.ts @@ -109,7 +109,7 @@ export const createWorker = async ( .replace(/--max-old-space-size=[\d]{1,}/, '') .trim(), __NEXT_PRIVATE_RENDER_WORKER: type, - __NEXT_PRIVATE_RENDER_WORKER_CONFIG: JSON.stringify(nextConfig), + __NEXT_EXISTING_CONFIG: JSON.stringify(nextConfig), __NEXT_PRIVATE_ROUTER_IPC_PORT: ipcPort + '', __NEXT_PRIVATE_ROUTER_IPC_KEY: ipcValidationKey, __NEXT_PRIVATE_STANDALONE_CONFIG: