comment mettre en place une ligne svg avec webpack
Je me demande comment mettre en place une ligne svg avec webpack?
Je suis à la suite de la réagir-webpack-livre de recettes.
J'ai mon webpack.config configurer correctement avec le fichier loader.
Cependant, l'exemple montre l'utilisation d'une image d'arrière-plan comme ceci:
.icon {
background-image: url(./logo.svg);
}
qui fonctionne très bien, mais je veux avoir une ligne image svg, comment dois-je faire pour y inclure mon logo.svg en ligne dans mon réagir composant?
import React, { Component } from 'react'
class Header extends Component {
render() {
return (
<div className='header'>
<img src={'./logo.svg'} />
</div>
);
}
};
export default Header
Vous devez vous connecter pour publier un commentaire.
Fait de Michelle réponse m'a orienté dans la bonne direction, et qui fonctionne très bien pour le chargement d'un fichier svg avec webpack et de l'utiliser comme votre
<img>
srcCependant à réellement obtenir la ligne svg, j'avais besoin de faire ce qui suit:
Au lieu de fichier-loader utiliser svg-inline-chargeur que votre svg chargeur:
{ test: /\.svg$/, loader: 'svg-inline-loader' }
Ensuite de charger le svg en ligne dans un composant:
Il semble qu'il y est une ligne svg wrapper pour réagir svg-inline-réagir qui serait une autre option à la place de la
<div dangerouslySetInnerHTML={{__html: mySvg}} />
Vieille question, mais je n'ai pas vu cette solution n'importe où, alors j'ai décidé de le poster, en espérant que cela aidera quelqu'un.
Si vous voulez être en mesure de style de ces icônes SVG, vous pouvez les charger avec le raw du chargeur:
webpack.config.js:
L'importation de mon point de vue:
Le modèle (Moustache utilise 3 crochets pour insérer les données SVG (URL)non codée):
de cette façon, les données SVG sera inséré à la place des crochets et ressembler à ceci:
Je suis en utilisant colonne vertébrale avec Moustache moteur de template avec Webpack 2.5.1
J'espère que ma réponse tardive sera encore utile pour quelqu'un, parce que je n'en aime aucune des options mentionnées ci-dessus.
La réagir-svg-chargeur webpack chargeur vous permet d'importer des icônes SVG comme JSX composants:
et le minimum de config ressemble à ceci:
La meilleure partie est qu'il produit juste le fichier svg contenu, sans supplément wrappers et
dangerouslySetInnerHTML
dans votre code.Si je ne me trompe pas, depuis que vous utilisez le fichier loader, vous pouvez l'utiliser de la même façon que pour tout autre besoin. Webpack tournera
require("./logo.svg")
dans un chemin d'accès à un fichier, qu'il émet lorsqu'il bundles.npm start
Semblable à une autre réponse à l'aide de Réagir, il est également pratique pour Vue plugin ainsi.
vue-svg-chargeur il suffit de jeter dans votre configuration et commencer à l'utiliser. La bonne chose est qu'il permet également de faire fonctionner votre svg par SVGO pour l'optimiser.
Configuration
Utilisation
Ici est un simple non-réagir solution.
{ test: /\.svg$/, loader: 'svg-inline-loader' }