From a7e7c03adf4afec1fc33381b011bb3ca8222250c Mon Sep 17 00:00:00 2001 From: Christopher Cabrera Date: Tue, 22 Nov 2022 05:28:43 -0500 Subject: [PATCH] fix: nuxt 3.0.0 stable support (#250) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Joaquín Sánchez fixes https://github.com/antfu/unplugin-icons/issues/249 --- examples/nuxt3/nuxt.config.ts | 2 -- examples/nuxt3/package.json | 5 +++-- src/nuxt.ts | 10 ++++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/examples/nuxt3/nuxt.config.ts b/examples/nuxt3/nuxt.config.ts index cb425c0..0ca7c88 100644 --- a/examples/nuxt3/nuxt.config.ts +++ b/examples/nuxt3/nuxt.config.ts @@ -1,5 +1,3 @@ -import { defineNuxtConfig } from 'nuxt' - // https://v3.nuxtjs.org/api/configuration/nuxt.config export default defineNuxtConfig({ modules: [ diff --git a/examples/nuxt3/package.json b/examples/nuxt3/package.json index 063a63b..09c3f61 100644 --- a/examples/nuxt3/package.json +++ b/examples/nuxt3/package.json @@ -7,8 +7,9 @@ "preview": "nuxt preview" }, "devDependencies": { - "@iconify/json": "^2.1.131", - "nuxt": "3.0.0-rc.12", + "@iconify-json/logos": "^1.1.18", + "@iconify-json/mdi": "^1.1.34", + "nuxt": "^3.0.0", "unplugin-icons": "link:../.." } } diff --git a/src/nuxt.ts b/src/nuxt.ts index d416518..ec0113b 100644 --- a/src/nuxt.ts +++ b/src/nuxt.ts @@ -1,12 +1,14 @@ import type { Options } from './types' import unplugin from '.' -export default function (this: any, options: Options = {}) { - if (this.nuxt?._version?.startsWith('3.')) +export default function (this: any, options: Options = {}, nuxt: any) { + const nuxtApp = this?.nuxt || nuxt + + if (nuxtApp?._version?.startsWith('3.')) options.compiler = 'vue3' // install webpack plugin - this.nuxt.hook('webpack:config', (configs: any[]) => { + nuxtApp.hook('webpack:config', (configs: any[]) => { configs.forEach((config) => { config.plugins = config.plugins || [] config.plugins.unshift(unplugin.webpack(options)) @@ -14,7 +16,7 @@ export default function (this: any, options: Options = {}) { }) // install vite plugin - this.nuxt.hook('vite:extend', async (vite: any) => { + nuxtApp.hook('vite:extend', async (vite: any) => { vite.config.plugins = vite.config.plugins || [] vite.config.plugins.push(unplugin.vite(options)) })