diff --git a/packages/nuxt/src/components/loader.ts b/packages/nuxt/src/components/loader.ts index 4ad701d4c3..cb51f9ab8d 100644 --- a/packages/nuxt/src/components/loader.ts +++ b/packages/nuxt/src/components/loader.ts @@ -15,7 +15,7 @@ interface LoaderOptions { sourcemap?: boolean transform?: ComponentsOptions['transform'] experimentalComponentIslands?: boolean - isDev: boolean + defaultToAutoImportName: boolean } export const loaderPlugin = createUnplugin((options: LoaderOptions) => { @@ -75,10 +75,10 @@ export const loaderPlugin = createUnplugin((options: LoaderOptions) => { if (lazy) { imports.add(genImport('vue', [{ name: 'defineAsyncComponent', as: '__defineAsyncComponent' }])) identifier += '_lazy' - imports.add(`const ${identifier} = __defineAsyncComponent(${genDynamicImport(component.filePath, { interopDefault: false })}.then(c => ${options.isDev ? `Object.assign(c.${component.export ?? 'default'} || c, {name: (c.${component.export ?? 'default'} || c)?.name ?? ${JSON.stringify(component.pascalName)}})` : `c.${component.export ?? 'default'} || c`})${isClientOnly ? '.then(c => createClientOnly(c))' : ''})`) + imports.add(`const ${identifier} = __defineAsyncComponent(${genDynamicImport(component.filePath, { interopDefault: false })}.then(c => ${options.defaultToAutoImportName ? `Object.assign(c.${component.export ?? 'default'} || c, {name: (c.${component.export ?? 'default'} || c)?.name ?? ${JSON.stringify(component.pascalName)}})` : `c.${component.export ?? 'default'} || c`})${isClientOnly ? '.then(c => createClientOnly(c))' : ''})`) } else { imports.add(genImport(component.filePath, [{ name: component._raw ? 'default' : component.export, as: identifier }])) - if (options.isDev) { + if (options.defaultToAutoImportName) { imports.add(`const ${identifier}_dev = Object.assign(${identifier}, { name: ${JSON.stringify(component.pascalName)} })`) identifier += '_dev' } diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts index 774243f64c..623926b0dd 100644 --- a/packages/nuxt/src/components/module.ts +++ b/packages/nuxt/src/components/module.ts @@ -230,7 +230,7 @@ export default defineNuxtModule({ mode, transform: typeof nuxt.options.components === 'object' && !Array.isArray(nuxt.options.components) ? nuxt.options.components.transform : undefined, experimentalComponentIslands: !!nuxt.options.experimental.componentIslands, - isDev: nuxt.options.dev, + defaultToAutoImportName: nuxt.options.dev || nuxt.options.test, })) if (nuxt.options.experimental.componentIslands) { @@ -300,7 +300,7 @@ export default defineNuxtModule({ mode, transform: typeof nuxt.options.components === 'object' && !Array.isArray(nuxt.options.components) ? nuxt.options.components.transform : undefined, experimentalComponentIslands: !!nuxt.options.experimental.componentIslands, - isDev: nuxt.options.dev, + defaultToAutoImportName: nuxt.options.dev || nuxt.options.test, })) if (nuxt.options.experimental.componentIslands) {