Я создал библиотеку vuejs с некоторыми компонентами, которые можно использовать во многих проектах.В этой библиотеке у меня есть компонент, который может загружать SVG-файлы для использования в формате html (svg-icon).
Отлично работает.
Но в этой же библиотеке яУ меня есть другой компонент, который использует svg-icon с изображением svg, хранящимся в библиотеке.
Точка импорта, я хотел бы использовать эту библиотеку (модуль узла) со ссылкой npm
Какой хороший способ указать путь к изображению SVG или где его хранить?
Я пробовал много разных путей, но ни один из них не работает...
Это мой компонент svg-icon:
<template>
<component :is="component"></component>
</template>
<script>
export default {
name: 'SvgIcon',
props: {
icon: {
type: String,
required: true
}
},
data () {
return {
component: null
}
},
watch: {
icon: () => {
this.load()
}
},
computed: {
loader () {
return () => import(this.icon)
}
},
methods: {
load () {
this.loader().then(() => {
this.component = () => this.loader()
})
}
},
mounted () {
this.load()
}
}
</script>
И этот компонент использует svg-icon (изображение svg фактически находится в той же папке):
<template>
<svg-icon icon="~my-module/components/media/no-image.svg"></svg-icon>
<svg-icon icon="./no-image.svg"></svg-icon>
</template>
<script>
import SvgIcon from '../svg-icon/SvgIcon'
export default {
components: {
SvgIcon
}
}
</script>
Я всегда получал следующие ошибки:
Cannot find module '~my-module/components/media/no-image.svg'
Cannot find module './no-image.svg'
Какой путь в этой ситуации хорош?Или я должен положить файл SVG в другом месте?(Я хотел бы сохранить его в библиотеке)