UNPKG

nuxt-svg-icons

Version:

A module for Nuxt 3 that allows you to use your own SVG icons as a component, url or raw text.

35 lines (32 loc) 980 B
import { fileURLToPath } from 'node:url'; import { defineNuxtModule, createResolver, addVitePlugin, addComponent } from '@nuxt/kit'; import { svg4VuePlugin } from 'vite-plugin-svg4vue'; const module = defineNuxtModule({ meta: { name: "nuxt-svg-icons", configKey: "nuxtSvgIcons", compatibility: { nuxt: ">=3.0.0" } }, defaults: { svg4vue: { assetsDirName: "assets/icons" }, enableNuxtSvgIconComponent: true }, setup(moduleOptions, nuxt) { const { resolve } = createResolver(import.meta.url); const runtimeDir = fileURLToPath(new URL("./runtime", import.meta.url)); nuxt.options.build.transpile.push(runtimeDir); addVitePlugin(svg4VuePlugin(moduleOptions.svg4vue)); if (moduleOptions.enableNuxtSvgIconComponent) { addComponent({ name: "nuxt-svg-icon", global: true, filePath: resolve("./runtime/components/nuxt-svg-icon.vue") }); } } }); export { module as default };