From e3553a36f9eb713ce22990471b2e4a006658c8ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E6=B8=B8=E5=90=9B?= Date: Fri, 14 Jul 2023 21:50:14 +0800 Subject: [PATCH] fix(nuxt): skip scanning components that do not produce a name (#22074) --- packages/nuxt/src/components/scan.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/components/scan.ts b/packages/nuxt/src/components/scan.ts index 4ed83962a8..3ca401816c 100644 --- a/packages/nuxt/src/components/scan.ts +++ b/packages/nuxt/src/components/scan.ts @@ -95,7 +95,7 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr const componentName = resolveComponentName(fileName, prefixParts) if (resolvedNames.has(componentName + suffix) || resolvedNames.has(componentName)) { - console.warn(`Two component files resolving to the same name \`${componentName}\`:\n` + + console.warn(`[nuxt] Two component files resolving to the same name \`${componentName}\`:\n` + `\n - ${filePath}` + `\n - ${resolvedNames.get(componentName)}` ) @@ -130,6 +130,12 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr component = (await dir.extendComponent(component)) || component } + // Ignore files like `~/components/index.vue` which end up not having a name at all + if (!componentName) { + console.warn(`[nuxt] Component did not resolve to a file name in \`~/${relative(srcDir, filePath)}\`.`) + continue + } + // Ignore component if component is already defined (with same mode) if (!components.some(c => c.pascalName === component.pascalName && ['all', component.mode].includes(c.mode))) { components.push(component)