Maison interface Web js tutoriel Comment charger SVG dans Webpack

Comment charger SVG dans Webpack

Jun 15, 2018 pm 02:18 PM
webpack

Cet article présente principalement la méthode pratique de chargement de SVG avec Webpack. Maintenant, je le partage avec vous et le donne comme référence.

SVG, en tant que format standard pour les graphiques vectoriels, est pris en charge par les principaux navigateurs et est également devenu synonyme de graphiques vectoriels sur le Web. L'utilisation de SVG au lieu de bitmaps dans les pages Web présente les avantages suivants :

  1. SVG est plus clair que les bitmaps et ne détruira pas la clarté des graphiques sous une mise à l'échelle arbitraire. SVG peut faciliter la résolution efficace du problème. d'affichage d'images peu claires sur les écrans haute résolution.

  2. Lorsque les lignes graphiques sont relativement simples, la taille du fichier SVG est plus petite que le bitmap Aujourd'hui, lorsque l'interface utilisateur plate est populaire, SVG sera plus petit dans la plupart des cas.

  3. SVG avec les mêmes graphiques a de meilleures performances de rendu que les graphiques haute définition correspondants.

  4. SVG utilise une description de syntaxe XML cohérente avec HTML, qui est très flexible.

L'outil de dessin peut exporter les fichiers .svg un par un. La méthode d'importation de SVG est similaire à celle des images. Elle peut être utilisée directement en CSS comme suit :

body {
 background-image: url(./svgs/activity.svg);
}
Copier après la connexion

Il peut également être utilisé en HTML :

<img src="./svgs/activity.svg"/>
Copier après la connexion

C'est-à-dire que vous pouvez utiliser le fichier SVG directement comme image, exactement de la même manière que vous utilisez des images. Par conséquent, les deux méthodes présentées dans 3-19 Chargement d'images à l'aide du chargeur de fichiers et de l'utilisation du chargeur d'url sont également efficaces pour SVG. Il vous suffit de changer le suffixe du fichier dans la configuration de test du chargeur en .svg.

module.exports = {
 module: {
  rules: [
   {
    test: /\.svg/,
    use: ['file-loader']
   }
  ]
 },
};
Copier après la connexion

Étant donné que SVG est un fichier au format texte, il existe d'autres méthodes en plus des deux méthodes ci-dessus, qui seront expliquées une par une ci-dessous.

Utiliser raw-loader

raw-loader peut lire le contenu du fichier texte et l'injecter dans JavaScript ou CSS.

Par exemple, écrivez ceci en JavaScript :

import svgContent from './svgs/alert.svg';
Copier après la connexion

Le code de sortie après le traitement du chargeur brut est le suivant :

module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\"... </svg>" // 末尾省略 SVG 内容
Copier après la connexion

C'est-à-dire que le Le contenu de svgContent est égal à SVG sous forme de chaîne. Puisque SVG lui-même est un élément HTML, après avoir obtenu le contenu SVG, vous pouvez directement insérer le SVG dans la page Web via le code suivant :

window.document.getElementById('app').innerHTML = svgContent;
Copier après la connexion

Pertinent. Configuration du Webpack lors de l'utilisation de raw-loader Comme suit :

module.exports = {
 module: {
  rules: [
   {
    test: /\.svg$/,
    use: ['raw-loader']
   }
  ]
 }
};
Copier après la connexion

Étant donné que raw-loader renverra directement le contenu texte de SVG et que le contenu texte de SVG ne peut pas être affiché via CSS, SVG ne peut pas être importé dans CSS après avoir utilisé cette méthode. C'est-à-dire qu'un code tel que background-image: url(./svgs/activity.svg) ne peut pas apparaître en CSS, car background-image: url(<svg>...</svg>) est illégal. .

Cet exemple fournit le code complet du projet

Utilisation de svg-inline-loader

svg-inline-loader et le raw-loader mentionné ci-dessus sont très similaires, mais la différence est que svg-inline-loader analysera le contenu de SVG et supprimera le code inutile pour réduire la taille du fichier SVG.

Après avoir utilisé des outils de dessin tels qu'Adobe Illustrator et Sketch pour créer du SVG, ces outils généreront du code inutile pour que la page Web s'exécute lors de l'exportation. Par exemple, voici le code SVG exporté par Sketch :

&lt;svg class=&quot;icon&quot; verison=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot;
   stroke=&quot;#000&quot;&gt;
 &lt;circle cx=&quot;12&quot; cy=&quot;12&quot; r=&quot;10&quot;/&gt;
&lt;/svg&gt;
Copier après la connexion

sera simplifié comme suit après avoir été traité par svg-inline-loader :

&lt;svg viewBox=&quot;0 0 24 24&quot; stroke=&quot;#000&quot;&gt;&lt;circle cx=&quot;12&quot; cy=&quot;12&quot; r=&quot;10&quot;/&gt;&lt;/svg&gt;
Copier après la connexion

En d'autres termes , svg-inline -loader ajoute une fonction de compression pour SVG.

La configuration Webpack pertinente lors de l'utilisation de svg-inline-loader est la suivante :

module.exports = {
 module: {
  rules: [
   {
    test: /\.svg$/,
    use: [&#39;svg-inline-loader&#39;]
   }
  ]
 }
};
Copier après la connexion

Cet exemple fournit le code complet du projet

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère qu'à l'avenir, cela sera utile à tout le monde.

Articles associés :

Comment intégrer vux dans vue.js pour implémenter le chargement pull-up et l'actualisation déroulant

Connexe projets vue dans webpack Le fichier de ressources signale un problème 404 (tutoriel détaillé)

Utiliser webpack+vue2 pour la construction du projet

À propos de la façon d'implémenter une liaison secondaire in vue est sélectionné par défaut La première valeur

Utilisation de ui-route pour implémenter le routage imbriqué multicouche dans AngularJS (tutoriel détaillé)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Tutoriel de démarrage VUE3 : empaquetage et création avec Webpack Tutoriel de démarrage VUE3 : empaquetage et création avec Webpack Jun 15, 2023 pm 06:17 PM

Tutoriel de démarrage VUE3 : empaquetage et création avec Webpack

Quelle est la différence entre vite et webpack Quelle est la différence entre vite et webpack Jan 11, 2023 pm 02:55 PM

Quelle est la différence entre vite et webpack

Comment utiliser PHP et Webpack pour le développement modulaire Comment utiliser PHP et Webpack pour le développement modulaire May 11, 2023 pm 03:52 PM

Comment utiliser PHP et Webpack pour le développement modulaire

Quels fichiers le package Vue Webpack peut-il contenir ? Quels fichiers le package Vue Webpack peut-il contenir ? Dec 20, 2022 pm 07:44 PM

Quels fichiers le package Vue Webpack peut-il contenir ?

Qu'est-ce que Webpack ? Explication détaillée de son fonctionnement ? Qu'est-ce que Webpack ? Explication détaillée de son fonctionnement ? Oct 13, 2022 pm 07:36 PM

Qu'est-ce que Webpack ? Explication détaillée de son fonctionnement ?

Comment Webpack convertit-il le module es6 en es5 ? Comment Webpack convertit-il le module es6 en es5 ? Oct 18, 2022 pm 03:48 PM

Comment Webpack convertit-il le module es6 en es5 ?

Utilisez Spring Boot et Webpack pour créer des projets frontaux et des systèmes de plug-ins Utilisez Spring Boot et Webpack pour créer des projets frontaux et des systèmes de plug-ins Jun 22, 2023 am 09:13 AM

Utilisez Spring Boot et Webpack pour créer des projets frontaux et des systèmes de plug-ins

webpack gère les problèmes de compatibilité du navigateur CSS webpack gère les problèmes de compatibilité du navigateur CSS Aug 09, 2022 pm 02:50 PM

webpack gère les problèmes de compatibilité du navigateur CSS

See all articles