From 57a5037b137647ad3926570727ab524c67a6d416 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Thu, 26 Jun 2025 15:40:45 +0200 Subject: [PATCH] fix(vue): handle override when importing from `@nuxt/ui` --- src/plugins/components.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/plugins/components.ts b/src/plugins/components.ts index e5b96350..7902635a 100644 --- a/src/plugins/components.ts +++ b/src/plugins/components.ts @@ -11,7 +11,7 @@ import { defu } from 'defu' /** * This plugin adds all the Nuxt UI components as auto-imports. */ -export default function ComponentImportPlugin(options: NuxtUIOptions & { prefix: NonNullable }, meta: UnpluginContextMeta) { +export default function ComponentImportPlugin(options: NuxtUIOptions & { prefix: NonNullable, extraRuntimeDir?: string }, meta: UnpluginContextMeta) { const components = globSync('**/*.vue', { cwd: join(runtimeDir, 'components') }) const componentNames = new Set(components.map(c => `${options.prefix}${c.replace(/\.vue$/, '')}`)) @@ -50,13 +50,15 @@ export default function ComponentImportPlugin(options: NuxtUIOptions & { prefix: name: 'nuxt:ui:components', enforce: 'pre', resolveId(id, importer) { - // only apply to runtime nuxt ui components - if (!importer || !normalize(importer).includes(runtimeDir)) { + if (!importer) { + return + } + if (!normalize(importer).includes(runtimeDir) && (!options.extraRuntimeDir || !normalize(importer).includes(options.extraRuntimeDir))) { return } - // only apply to relative imports - if (!RELATIVE_IMPORT_RE.test(id)) { + // only apply to relative imports or nuxt ui runtime components + if (!RELATIVE_IMPORT_RE.test(id) && !id.startsWith('@nuxt/ui/components/')) { return }