Comment importer des fichiers svg dans Vue 3 ?
P粉021854777
2023-08-23 08:37:27
<p>J'ai essayé ce qui suit : <br /> <a href="https://github.com/visualfanatic/vue-svg-loader/tree/master">https://github com. /visualfanatic/vue-svg-loader/tree/master</a></p>
<p>Mais comme vue-template-compiler est utilisé dans Vue 2, il existe un conflit de version. </p>
<p>J'ai essayé :<br /> <a href="https://github.com/visualfanatic/vue-svg-loader">https://github.com/visualfanatic/vue-svg -loader</a></p>
<p>Mais il me manque une dépendance Vue spécifique. </p>
<p>J'ai remarqué qu'il y avait une note lors de l'utilisation de TypeScript, qui nécessite de déclarer un fichier de définition de type. Cependant, j'obtiens toujours l'erreur "Impossible de trouver le module '../../assets/myLogo.svg' ou sa déclaration de type correspondante". </p>
<p>Voici ce que j'ai ajouté : </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();
svgRègle
.use('vue-loader-v16')
.loader('vue-loader-v16')
.fin()
.use('vue-svg-loader')
.loader('vue-svg-loader');
},
configureWebpack : process.env.NODE_ENV === 'production' {} : {
outil de développement : 'carte-source'
},
publicPath : process.env.NODE_ENV === 'production' ?
'/Site Web personnel/' : '/'
}</pré>
<p>cales-svg.d.ts</p>
<pre class="brush:php;toolbar:false;">déclarer le module '*.svg' {
contenu const : n’importe lequel ;
exporter le contenu par défaut ;
}</pré>
<p>MonComponent.vue</p>
<pre class="brush:php;toolbar:false;"><template>
<div>
<MonLogo />
</div>
</modèle>
<script lang="ts">
importer * en tant que MyLogo depuis "../../assets/myLogo.svg" ;
exporter le composant défini par défaut ({
nom : "MonComposant",
Composants: {
MonLogo
},
accessoires : {
},
configuration (accessoires)
{
retour {
accessoires
} ;
}
});
</script></pre>
<p><br /></p>
vue-svg-loader n'est pas compatible avec vue 3. Pour importer un fichier SVG et l'utiliser comme composant, enveloppez simplement le contenu du fichier dans un « modèle »
En composante :
Webpack :
scripts/svg-to-vue.js :
En fait, Vue CLI prend déjà en charge SVG de manière native. Il utilise file-loader en interne. Vous pouvez confirmer en exécutant la commande suivante sur le terminal :
Si « svg » est répertorié (il devrait l'être), alors il vous suffit de :
Donc, si votre objectif est simplement d'afficher du SVG, vous n'avez besoin d'aucune bibliothèque tierce.
Bien sûr, pour satisfaire aux exigences de déclaration de type du compilateur TypeScript :