From ada1e49f5a8cf342d74498f8b2588d598c05941c Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 9 Sep 2024 17:30:10 +0200 Subject: [PATCH] fix(nuxt): enable `injectAtEnd` to reduce circular auto-imports (#28822) --- packages/nuxt/src/components/transform.ts | 1 + packages/nuxt/src/imports/module.ts | 1 + packages/nuxt/test/auto-imports.test.ts | 1 + packages/nuxt/test/components-transform.test.ts | 9 ++++++--- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/components/transform.ts b/packages/nuxt/src/components/transform.ts index f11f9ce555..5a76483b10 100644 --- a/packages/nuxt/src/components/transform.ts +++ b/packages/nuxt/src/components/transform.ts @@ -22,6 +22,7 @@ export function createTransformPlugin (nuxt: Nuxt, getComponents: getComponentsT }, ], virtualImports: ['#components'], + injectAtEnd: true, }) function getComponentsImports (): Import[] { diff --git a/packages/nuxt/src/imports/module.ts b/packages/nuxt/src/imports/module.ts index f332a668de..29e35589b1 100644 --- a/packages/nuxt/src/imports/module.ts +++ b/packages/nuxt/src/imports/module.ts @@ -40,6 +40,7 @@ export default defineNuxtModule>({ // Create a context to share state between module internals const ctx = createUnimport({ + injectAtEnd: true, ...options, addons: { vueTemplate: options.autoImport, diff --git a/packages/nuxt/test/auto-imports.test.ts b/packages/nuxt/test/auto-imports.test.ts index 3ae56bfb26..d7b326adf9 100644 --- a/packages/nuxt/test/auto-imports.test.ts +++ b/packages/nuxt/test/auto-imports.test.ts @@ -18,6 +18,7 @@ describe('imports:transform', () => { ] const ctx = createUnimport({ + injectAtEnd: true, imports, }) diff --git a/packages/nuxt/test/components-transform.test.ts b/packages/nuxt/test/components-transform.test.ts index 76859ef621..d61f0bb55c 100644 --- a/packages/nuxt/test/components-transform.test.ts +++ b/packages/nuxt/test/components-transform.test.ts @@ -15,7 +15,8 @@ describe('components:transform', () => { const code = await transform('import { Foo, Bar } from \'#components\'', '/app.vue') expect(code).toMatchInlineSnapshot(` - "import Foo from '/Foo.vue'; + " + import Foo from '/Foo.vue'; import { Bar } from '/Bar.vue'; " `) @@ -28,7 +29,8 @@ describe('components:transform', () => { const code = await transform('import { Foo, LazyFoo } from \'#components\'', '/app.vue') expect(code).toMatchInlineSnapshot(` - "import Foo from '/Foo.vue?nuxt_component=server&nuxt_component_name=Foo&nuxt_component_export=default'; + " + import Foo from '/Foo.vue?nuxt_component=server&nuxt_component_name=Foo&nuxt_component_export=default'; import LazyFoo from '/Foo.vue?nuxt_component=server,async&nuxt_component_name=Foo&nuxt_component_export=default'; " `) @@ -54,7 +56,8 @@ describe('components:transform', () => { const code = await transform('import { Foo, LazyFoo } from \'#components\'', '/app.vue') expect(code).toMatchInlineSnapshot(` - "import Foo from '/Foo.vue?nuxt_component=client&nuxt_component_name=Foo&nuxt_component_export=default'; + " + import Foo from '/Foo.vue?nuxt_component=client&nuxt_component_name=Foo&nuxt_component_export=default'; import LazyFoo from '/Foo.vue?nuxt_component=client,async&nuxt_component_name=Foo&nuxt_component_export=default'; " `)