From 6644dc73549d74b2a7bcfcf8044aa90aa15a8179 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sun, 30 Apr 2023 08:05:30 +0200 Subject: [PATCH 1/2] fix(nuxt): properly handle query for component wrapper --- packages/nuxt/src/components/transform.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/nuxt/src/components/transform.ts b/packages/nuxt/src/components/transform.ts index d16b7b3538fa..1270ca032c89 100644 --- a/packages/nuxt/src/components/transform.ts +++ b/packages/nuxt/src/components/transform.ts @@ -21,15 +21,19 @@ export function createTransformPlugin (nuxt: Nuxt, getComponents: getComponentsT function getComponentsImports (): Import[] { const components = getComponents(mode) return components.flatMap((c): Import[] => { + const withMode = (mode: string | undefined) => mode + ? `${c.filePath}${c.filePath.includes('?') ? '&' : '?'}nuxt_component=${mode}` + : c.filePath + return [ { as: c.pascalName, - from: c.filePath + (c.mode === 'client' ? '?component=client' : ''), + from: withMode(c.mode), name: 'default' }, { as: 'Lazy' + c.pascalName, - from: c.filePath + '?component=' + [c.mode === 'client' ? 'client' : '', 'async'].filter(Boolean).join(','), + from: withMode([c.mode === 'client' ? 'client' : '', 'async'].filter(Boolean).join(',')), name: 'default' } ] @@ -43,10 +47,10 @@ export function createTransformPlugin (nuxt: Nuxt, getComponents: getComponentsT }, async transform (code, id) { // Virtual component wrapper - if (id.includes('?component')) { + if (id.match(/[?&]nuxt_component=/)) { const { search } = parseURL(id) const query = parseQuery(search) - const mode = query.component + const mode = query.nuxt_component const bare = id.replace(/\?.*/, '') if (mode === 'async') { return [ From f87bf4192f8b4a7705c54ca9bb9d43befa3666df Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sun, 30 Apr 2023 08:49:25 +0200 Subject: [PATCH 2/2] chore: update --- packages/nuxt/src/components/transform.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/components/transform.ts b/packages/nuxt/src/components/transform.ts index 1270ca032c89..2a6c5dba6e7d 100644 --- a/packages/nuxt/src/components/transform.ts +++ b/packages/nuxt/src/components/transform.ts @@ -28,7 +28,7 @@ export function createTransformPlugin (nuxt: Nuxt, getComponents: getComponentsT return [ { as: c.pascalName, - from: withMode(c.mode), + from: withMode(c.mode === 'client' ? 'client' : undefined), name: 'default' }, {