From 4cb7e425a1e915d1fb2c184ade8d59564e643a55 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Mon, 12 Dec 2022 21:07:31 +1100 Subject: [PATCH] refactor(nuxt): remove `vue-meta` for head support (#9638) --- packages/nuxt/build.config.ts | 3 +- packages/nuxt/package.json | 3 +- .../src/head/runtime/lib/vue-meta.plugin.ts | 43 ------------------- packages/schema/build.config.ts | 1 - pnpm-lock.yaml | 11 ----- 5 files changed, 2 insertions(+), 59 deletions(-) delete mode 100644 packages/nuxt/src/head/runtime/lib/vue-meta.plugin.ts diff --git a/packages/nuxt/build.config.ts b/packages/nuxt/build.config.ts index ffde3741e4..3c3e409a67 100644 --- a/packages/nuxt/build.config.ts +++ b/packages/nuxt/build.config.ts @@ -23,7 +23,6 @@ export default defineBuildConfig({ externals: [ '@vue/reactivity', '@vue/shared', - '@vueuse/head', - 'vue-meta' + '@vueuse/head' ] }) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index ed7d752867..0e4dfba938 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -84,8 +84,7 @@ "devDependencies": { "@types/fs-extra": "^9.0.13", "@types/hash-sum": "^1.0.0", - "unbuild": "latest", - "vue-meta": "next" + "unbuild": "latest" }, "engines": { "node": "^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" diff --git a/packages/nuxt/src/head/runtime/lib/vue-meta.plugin.ts b/packages/nuxt/src/head/runtime/lib/vue-meta.plugin.ts deleted file mode 100644 index ecdc4d689a..0000000000 --- a/packages/nuxt/src/head/runtime/lib/vue-meta.plugin.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { createApp } from 'vue' -import { createMetaManager } from 'vue-meta' -import type { MetaObject } from '..' -import { defineNuxtPlugin } from '#app' -// @ts-expect-error untyped -import { appHead } from '#build/nuxt.config.mjs' - -export default defineNuxtPlugin((nuxtApp) => { - // @ts-expect-error missing resolver - const manager = createMetaManager(process.server) - manager.addMeta(appHead) - - nuxtApp.vueApp.use(manager) - - nuxtApp._useHead = (meta: MetaObject) => manager.addMeta(meta) - - if (process.client) { - const teleportTarget = document.createElement('div') - teleportTarget.id = 'head-target' - document.body.appendChild(teleportTarget) - - createApp({ render: () => manager.render({}) }).mount('#head-target') - } - - if (process.server) { - nuxtApp.ssrContext!.renderMeta = async () => { - // @ts-ignore - const { renderMetaToString } = await import('vue-meta/ssr') - nuxtApp.ssrContext!.teleports = nuxtApp.ssrContext!.teleports || {} - - await renderMetaToString(nuxtApp.app, nuxtApp.ssrContext) - - return { - htmlAttrs: nuxtApp.ssrContext!.teleports.htmlAttrs || '', - headAttrs: nuxtApp.ssrContext!.teleports.headAttrs || '', - bodyAttrs: nuxtApp.ssrContext!.teleports.bodyAttrs || '', - headTags: nuxtApp.ssrContext!.teleports.head || '', - bodyScriptsPrepend: nuxtApp.ssrContext!.teleports['body-prepend'] || '', - bodyScripts: nuxtApp.ssrContext!.teleports.body || '' - } - } - } -}) diff --git a/packages/schema/build.config.ts b/packages/schema/build.config.ts index 7c23363f78..6016baba15 100644 --- a/packages/schema/build.config.ts +++ b/packages/schema/build.config.ts @@ -19,7 +19,6 @@ export default defineBuildConfig({ ], externals: [ // Type imports - 'vue-meta', 'vue-router', 'vue-bundle-renderer', '@unhead/schema', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36d3f85080..1a99512eb4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -455,7 +455,6 @@ importers: vue: 3.2.45 vue-bundle-renderer: ^1.0.0 vue-devtools-stub: ^0.1.0 - vue-meta: next vue-router: ^4.1.6 dependencies: '@nuxt/devalue': 2.0.0 @@ -506,7 +505,6 @@ importers: '@types/fs-extra': 9.0.13 '@types/hash-sum': 1.0.0 unbuild: 1.0.2 - vue-meta: 3.0.0-alpha.2_vue@3.2.45 packages/schema: specifiers: @@ -8980,15 +8978,6 @@ packages: webpack: 5.75.0 dev: false - /vue-meta/3.0.0-alpha.2_vue@3.2.45: - resolution: {integrity: sha512-mLDB/vGjn2Q58IFKs5Dtp/STWZ0sEbkdM67u+YXuMreK5EjNHnqhcylQb+xn50pwxCdQD98nGgJlEXkh16Hqug==} - peerDependencies: - '@vue/server-renderer': ^3.0.6 - vue: ^3.0.0 - dependencies: - vue: 3.2.45 - dev: true - /vue-router/4.1.6_vue@3.2.45: resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} peerDependencies: