From 59a1f7bae03b8c3b74a5a1718de9404d27e47c5d Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 14 Feb 2023 22:22:53 +0000 Subject: [PATCH] perf(nuxt): allow tree-shaking empty meta from build (#19032) --- packages/nuxt/src/pages/page-meta.ts | 4 ++-- packages/nuxt/src/pages/utils.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/pages/page-meta.ts b/packages/nuxt/src/pages/page-meta.ts index c644b52b78b..83819845338 100644 --- a/packages/nuxt/src/pages/page-meta.ts +++ b/packages/nuxt/src/pages/page-meta.ts @@ -16,7 +16,7 @@ export interface PageMetaPluginOptions { } const CODE_EMPTY = ` -const __nuxt_page_meta = {} +const __nuxt_page_meta = null export default __nuxt_page_meta ` @@ -138,7 +138,7 @@ export const PageMetaPlugin = createUnplugin((options: PageMetaPluginOptions) => const meta = node.arguments[0] as Expression & { start: number, end: number } - let contents = `const __nuxt_page_meta = ${code!.slice(meta.start, meta.end) || '{}'}\nexport default __nuxt_page_meta` + (options.dev ? CODE_HMR : '') + let contents = `const __nuxt_page_meta = ${code!.slice(meta.start, meta.end) || 'null'}\nexport default __nuxt_page_meta` + (options.dev ? CODE_HMR : '') function addImport (name: string | false) { if (name && importMap.has(name)) { diff --git a/packages/nuxt/src/pages/utils.ts b/packages/nuxt/src/pages/utils.ts index 8c364e98fcf..946b67b5b0d 100644 --- a/packages/nuxt/src/pages/utils.ts +++ b/packages/nuxt/src/pages/utils.ts @@ -264,7 +264,7 @@ export function normalizeRoutes (routes: NuxtPage[], metaImports: Set = name: `${metaImportName}?.name ?? ${page.name ? JSON.stringify(page.name) : 'undefined'}`, path: `${metaImportName}?.path ?? ${JSON.stringify(page.path)}`, children: page.children ? normalizeRoutes(page.children, metaImports).routes : [], - meta: page.meta ? `{...(${metaImportName} || {}), ...${JSON.stringify(page.meta)}}` : metaImportName, + meta: page.meta ? `{...(${metaImportName} || {}), ...${JSON.stringify(page.meta)}}` : `${metaImportName} || {}`, alias: aliasCode, redirect: page.redirect ? JSON.stringify(page.redirect) : `${metaImportName}?.redirect || undefined`, component: genDynamicImport(file, { interopDefault: true })