Home Web Front-end JS Tutorial How to load SVG in Webpack

How to load SVG in Webpack

Jun 15, 2018 pm 02:18 PM
webpack

This article mainly introduces the actual method of loading SVG with Webpack. Now I will share it with you and give you a reference.

As a standard format for vector graphics, SVG has been supported by major browsers, and it has also become synonymous with vector graphics on the Web. Using SVG instead of bitmaps in web pages has the following benefits:

  1. SVG is clearer than bitmaps and will not destroy the clarity of graphics under arbitrary scaling. SVG can facilitate It effectively solves the problem of unclear image display on high-resolution screens.

  2. When the graphic lines are relatively simple, the size of the SVG file is smaller than the bitmap. Today, when flat UI is popular, SVG will be smaller in most cases.

  3. SVG with the same graphics has better rendering performance than the corresponding high-definition graphics.

  4. SVG uses XML syntax description consistent with HTML, and is highly flexible.

The drawing tool can export .svg files individually. The import method of SVG is similar to that of images. It can be used directly in CSS as follows:

1

2

3

body {

 background-image: url(./svgs/activity.svg);

}

Copy after login

Also Used in HTML:

1

<img src="./svgs/activity.svg"/>

Copy after login

That is to say, the SVG file can be used directly as a picture, and the method is exactly the same as when using pictures. Therefore, the two methods introduced in 3-19 Loading Images using file-loader and using url-loader are equally effective for SVG. You only need to change the file suffix in the Loader test configuration to .svg. The code is as follows:

1

2

3

4

5

6

7

8

9

10

module.exports = {

 module: {

  rules: [

   {

    test: /\.svg/,

    use: [&#39;file-loader&#39;]

   }

  ]

 },

};

Copy after login

Since SVG is a text format file, there are other methods besides the above two methods, which will be explained one by one below.

Use raw-loader

raw-loader can read the contents of the text file and inject it into JavaScript or CSS.

For example, write this in JavaScript:

1

import svgContent from &#39;./svgs/alert.svg&#39;;

Copy after login

The output code after raw-loader processing is as follows:

1

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

Copy after login

That is to say, the content of svgContent is equal to the string form SVG, since SVG itself is an HTML element, after obtaining the SVG content, you can directly insert the SVG into the web page through the following code:

1

window.document.getElementById(&#39;app&#39;).innerHTML = svgContent;

Copy after login

The relevant Webpack configuration when using raw-loader is as follows:

1

2

3

4

5

6

7

8

9

10

module.exports = {

 module: {

  rules: [

   {

    test: /\.svg$/,

    use: [&#39;raw-loader&#39;]

   }

  ]

 }

};

Copy after login

Since raw-loader will directly return the text content of SVG and cannot display the text content of SVG through CSS, SVG cannot be imported into CSS after using this method. That is to say, code such as background-image: url(./svgs/activity.svg) cannot appear in CSS, because background-image: url(...) is illegal of.

This example provides the complete code of the project

Using svg-inline-loader

svg-inline-loader and the raw-loader mentioned above are very Similar, but the difference is that svg-inline-loader will analyze the content of SVG and remove unnecessary code to reduce the file size of SVG.

After using drawing tools such as Adobe Illustrator and Sketch to create SVG, these tools will generate unnecessary code for the web page to run when exporting. For example, the following is the SVG code exported by Sketch:

1

2

3

4

<svg class="icon" verison="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"

   stroke="#000">

 <circle cx="12" cy="12" r="10"/>

</svg>

Copy after login

After being processed by svg-inline-loader, it will be streamlined into the following:

1

<svg viewBox="0 0 24 24" stroke="#000"><circle cx="12" cy="12" r="10"/></svg>

Copy after login

In other words, svg-inline-loader has been added Compression function for SVG.

The relevant Webpack configuration when using svg-inline-loader is as follows:

1

2

3

4

5

6

7

8

9

10

module.exports = {

 module: {

  rules: [

   {

    test: /\.svg$/,

    use: [&#39;svg-inline-loader&#39;]

   }

  ]

 }

};

Copy after login

This example provides the complete code of the project

The above is what I compiled for everyone, I hope it will be useful to you in the future Everyone is helpful.

Related articles:

How to integrate vux in vue.js to implement pull-up loading and pull-down refresh

Related vue projects in webpack Resource file reports 404 problem (detailed tutorial)

Use webpack vue2 for project construction

About how to implement secondary linkage in vue, the default selection is A value

Using ui-route to implement multi-layer nested routing in AngularJS (detailed tutorial)

The above is the detailed content of How to load SVG in Webpack. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1245
24
VUE3 Getting Started Tutorial: Packaging and Building with Webpack VUE3 Getting Started Tutorial: Packaging and Building with Webpack Jun 15, 2023 pm 06:17 PM

Vue is an excellent JavaScript framework that can help us quickly build interactive and efficient web applications. Vue3 is the latest version of Vue, which introduces many new features and functionality. Webpack is currently one of the most popular JavaScript module packagers and build tools, which can help us manage various resources in our projects. This article will introduce how to use Webpack to package and build Vue3 applications. 1. Install Webpack

What is the difference between vite and webpack What is the difference between vite and webpack Jan 11, 2023 pm 02:55 PM

Differences: 1. The startup speed of the webpack server is slower than that of Vite; because Vite does not require packaging when starting, there is no need to analyze module dependencies and compile, so the startup speed is very fast. 2. Vite hot update is faster than webpack; in terms of HRM of Vite, when the content of a certain module changes, just let the browser re-request the module. 3. Vite uses esbuild to pre-build dependencies, while webpack is based on node. 4. The ecology of Vite is not as good as webpack, and the loaders and plug-ins are not rich enough.

How to use PHP and webpack for modular development How to use PHP and webpack for modular development May 11, 2023 pm 03:52 PM

With the continuous development of web development technology, front-end and back-end separation and modular development have become a widespread trend. PHP is a commonly used back-end language. When doing modular development, we need to use some tools to manage and package modules. Webpack is a very easy-to-use modular packaging tool. This article will introduce how to use PHP and webpack for modular development. 1. What is modular development? Modular development refers to decomposing a program into different independent modules. Each module has its own function.

How does webpack convert es6 to es5 module? How does webpack convert es6 to es5 module? Oct 18, 2022 pm 03:48 PM

Configuration method: 1. Use the import method to put the ES6 code into the packaged js code file; 2. Use the npm tool to install the babel-loader tool, the syntax is "npm install -D babel-loader @babel/core @babel/preset- env"; 3. Create the configuration file ".babelrc" of the babel tool and set the transcoding rules; 4. Configure the packaging rules in the webpack.config.js file.

Use Spring Boot and Webpack to build front-end projects and plug-in systems Use Spring Boot and Webpack to build front-end projects and plug-in systems Jun 22, 2023 am 09:13 AM

As the complexity of modern web applications continues to increase, building excellent front-end engineering and plug-in systems has become increasingly important. With the popularity of Spring Boot and Webpack, they have become a perfect combination for building front-end projects and plug-in systems. SpringBoot is a Java framework that creates Java applications with minimal configuration requirements. It provides many useful features, such as automatic configuration, so that developers can build and deploy web applications faster and easier. W

What files can vue webpack package? What files can vue webpack package? Dec 20, 2022 pm 07:44 PM

In vue, webpack can package js, css, pictures, json and other files into appropriate formats for browser use; in webpack, js, css, pictures, json and other file types can be used as modules. Various module resources in webpack can be packaged and merged into one or more packages, and during the packaging process, the resources can be processed, such as compressing images, converting scss to css, converting ES6 syntax to ES5, etc., which can be recognized by HTML. file type.

What is Webpack? Detailed explanation of how it works? What is Webpack? Detailed explanation of how it works? Oct 13, 2022 pm 07:36 PM

Webpack is a module packaging tool. It creates modules for different dependencies and packages them all into manageable output files. This is especially useful for single-page applications (the de facto standard for web applications today).

An in-depth analysis of the packaging process and principles of webpack An in-depth analysis of the packaging process and principles of webpack Aug 09, 2022 pm 05:11 PM

How does Webpack implement packaging? The following article will give you an in-depth understanding of Webpack packaging principles. I hope it will be helpful to you!

See all articles