Wie importiere ich SVG-Dateien in Vue 3?
P粉021854777
2023-08-23 08:37:27
<p>Ich habe Folgendes versucht: <br /> <a href="https://github.com/visualfanatic/vue-svg-loader/tree/master">https://github /visualfanatic/vue-svg-loader/tree/master</a></p>
<p>Aber da in Vue 2 der Vue-Template-Compiler verwendet wird, gibt es einen Versionskonflikt. </p>
<p>Ich habe versucht:<br /> <a href="https://github.com/visualfanatic/vue-svg-loader">https://github.com/visualfanatic/vue-svg -loader</a></p>
<p>Aber mir fehlt eine bestimmte Vue-Abhängigkeit. </p>
<p>Mir ist aufgefallen, dass es bei der Verwendung von TypeScript einen Hinweis gibt, der die Deklaration einer Typdefinitionsdatei erfordert. Ich erhalte jedoch immer noch die Fehlermeldung „Modul '../../assets/myLogo.svg' oder die entsprechende Typdeklaration kann nicht gefunden werden“. </p>
<p>Das habe ich hinzugefügt: </p>
<p>vue.config.js</p>
<pre class="brush:php;toolbar:false;">module.exports = {
chainWebpack: (config) =>
{
const svgRule = config.module.rule('svg');
svgRule.uses.clear();
svgRule
.use('vue-loader-v16')
.loader('vue-loader-v16')
.Ende()
.use('vue-svg-loader')
.loader('vue-svg-loader');
},
configureWebpack: Process.env.NODE_ENV === 'Produktion' {} : {
devtool: 'source-map'
},
publicPath: Process.env.NODE_ENV === 'Produktion'?
'/Persönliche Webseite/' : '/'
}</pre>
<p>shims-svg.d.ts</p>
<pre class="brush:php;toolbar:false;">modul '*.svg' deklarieren {
const-Inhalt: beliebig;
Standardinhalte exportieren;
}</pre>
<p>MyComponent.vue</p>
<pre class="brush:php;toolbar:false;"><template>
<div>
<MeinLogo />
</div>
</template>
<script lang="ts">
import * als MyLogo aus „../../assets/myLogo.svg“;
Standard exportieren defineComponent({
Name: „MyComponent“,
Komponenten: {
MeinLogo
},
Requisiten: {
},
Setup(Requisiten)
{
zurückkehren {
Requisiten
};
}
});
</script></pre>
<p><br /></p>
vue-svg-loader 不兼容 vue 3。要导入 svg 并将其用作组件,只需将文件内容包裹在 'template' 中
在组件中:
Webpack:
scripts/svg-to-vue.js:
实际上,Vue CLI已经原生支持SVG。它内部使用file-loader。您可以通过在终端上运行以下命令来确认:
如果“svg”被列出(应该会被列出),那么您只需要:
因此,如果您的目的只是显示SVG,那么不需要任何第三方库。
当然,为了满足TypeScript编译器的类型声明要求: