Не удается загрузить SVG с помощью NuxtJS Vite

#javascript #svg #nuxt.js #vite

Вопрос:

Я не могу загрузить SVG с помощью @nuxtjs/svg . Я правильно добавил модуль сборки в nuxt.config.js файл, и они все еще не загружаются. Я видел, как некоторые разработчики жаловались, что это может быть связано с ViteJS, поэтому я также добавил vite-svg-loader зависимость, но у меня есть эта ошибка:

__vite_ssr_import_0__.createElementVNode is not a function

Вот мое nuxt.config.js досье

 import svgLoader from 'vite-svg-loader'
import { APP_NAME, APP_LANG, APP_ROOT_ID } from "./constants";

export default {
  // Global page headers: https://go.nuxtjs.dev/config-head
  head: {
    title: APP_NAME,
    htmlAttrs: {
      lang: APP_LANG,
    },
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: '' },
      { name: 'format-detection', content: 'telephone=no' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },

  globals: {
    id: globalName => APP_ROOT_ID,
  },

  // Global CSS: https://go.nuxtjs.dev/config-css
  css: [
    '@/assets/styles/main.scss',
    '@/assets/styles/variables.scss',
  ],

  // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
  plugins: [
  ],

  // Auto import components: https://go.nuxtjs.dev/config-components
  components: {
    dirs: [
      '~/components',
      '~/components/pages',
      '~/components/ui',
    ],
  },

  // Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
  buildModules: [
    // https://go.nuxtjs.dev/eslint
    '@nuxtjs/eslint-module',
    // https://go.nuxtjs.dev/tailwindcss
    '@nuxtjs/tailwindcss',
    '@nuxtjs/svg',
    '@nuxtjs/style-resources',
    'nuxt-vite'
  ],

  // Modules: https://go.nuxtjs.dev/config-modules
  modules: [],

  // Build Configuration: https://go.nuxtjs.dev/config-build
  build: {
    extend(config, ctx) {
      config.module.rules.push({
        test: /.svg$/,
        loader: 'file-loader',
      });
    },
  },

  styleResources: {
    scss: '@/assets/styles/mixins.scss',
  },

  vite: {
    ssr: false,
    plugins: [svgLoader()],
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: '@import "@/assets/styles/mixins.scss";',
        },
      },
    },
  },
}
 

И вот как я загружаю свои SVG :

Значок.vue

 <template>
  <component :is="icon"/>
</template>

<script>
import * as icons from "~/assets/images/icons";

export default {
  props: [ 'name' ],
  computed: {
    icon() {
      return icons[this.name]
    }
  },
}
</script>
 

Использование :

 <template>
  <Icon name='add' />
</template>
 

С уважением,