From d195930aaeff5523721f68bd651f14c6fd5fb3ab Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Jun 2024 12:51:00 +0100 Subject: [PATCH] perf(kit): deduplicate layers before resolving config (#27582) --- packages/kit/src/loader/config.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/loader/config.ts b/packages/kit/src/loader/config.ts index 3c5894ea68..b2c4d1b883 100644 --- a/packages/kit/src/loader/config.ts +++ b/packages/kit/src/loader/config.ts @@ -42,10 +42,15 @@ export async function loadNuxtConfig (opts: LoadNuxtConfigOptions): Promise[] = [] + const processedLayers = new Set() for (const layer of layers) { // Resolve `rootDir` & `srcDir` of layers layer.config = layer.config || {} - layer.config.rootDir = layer.config.rootDir ?? layer.cwd + layer.config.rootDir = layer.config.rootDir ?? layer.cwd! + + // Only process/resolve layers once + if (processedLayers.has(layer.config.rootDir)) { continue } + processedLayers.add(layer.config.rootDir) // Normalise layer directories layer.config = await applyDefaults(layerSchema, layer.config as NuxtConfig & Record) as unknown as NuxtConfig