多くのプロジェクトで使用できるいくつかのコンポーネントを含む vuejs ライブラリを作成しました。そのライブラリには、html (svg-icon) でインラインで使用される svg ファイルをロードできるコンポーネントがあります。
それはうまくいきます。
しかし、この同じライブラリには、ライブラリに保存されている svg イメージで svg-icon を使用する別のコンポーネントがあります。
重要な点として、このライブラリ (ノード モジュール) を 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 ファイルを別の場所に配置する必要がありますか? (図書館に置いておきたい)