Skip to content

Commit 7055178

Browse files
A few tweaks to the readme
1 parent 075d60d commit 7055178

File tree

1 file changed

+75
-31
lines changed

1 file changed

+75
-31
lines changed

README.md

Lines changed: 75 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,95 @@
1-
# vue-svg-loader <img src="https://img.shields.io/npm/dt/vue-svg-loader.svg">
2-
A webpack loader that allows to use SVG files as Vue Components.
1+
<p align="center"><img src="docs/.vuepress/public/logo.svg" width="40%"></p>
2+
<h1 align="center">vue-svg-loader</h1>
3+
<p align="center">webpack loader that lets you use SVG files as Vue components</p>
4+
<hr>
5+
<p align="center">
6+
<a href="https://vue-svg-loader.js.org">Documentation</a> -
7+
<a href="https://vue-svg-loader.js.org/faq.html">FAQ</a>
8+
</p>
39

410
## Installation
5-
```
6-
npm install --save-dev vue-svg-loader
11+
``` bash
12+
npm i -D vue-svg-loader
713
yarn add --dev vue-svg-loader
814
```
915

10-
## Configuration
11-
```js
12-
{
13-
test: /\.svg$/,
14-
loader: 'vue-svg-loader', // `vue-svg` for webpack 1.x
15-
options: {
16-
// optional [svgo](https://github.com/svg/svgo) options
17-
svgo: {
18-
plugins: [
19-
{removeDoctype: true},
20-
{removeComments: true}
21-
]
22-
}
23-
}
24-
}
16+
## Basic configuration
17+
### webpack
18+
``` js
19+
module.exports = {
20+
module: {
21+
rules: [
22+
{
23+
test: /\.svg$/,
24+
loader: 'vue-svg-loader',
25+
},
26+
],
27+
},
28+
};
29+
```
30+
### Vue CLI
31+
``` js
32+
module.exports = {
33+
chainWebpack: (config) => {
34+
const svgRule = config.module.rule('svg');
35+
36+
svgRule.uses.clear();
37+
38+
svgRule
39+
.use('vue-svg-loader')
40+
.loader('vue-svg-loader');
41+
},
42+
};
2543
```
2644

27-
## Example code
45+
### Nuxt.js
46+
``` js
47+
module.exports = {
48+
build: {
49+
extend: (config) => {
50+
const svgRule = config.module.rules.find(rule => rule.loader === 'url-loader');
2851

29-
```html
52+
svgRule.test = /\.(png|jpe?g|gif)$/;
53+
54+
config.module.rules.push({
55+
test: /\.svg$/,
56+
loader: 'vue-svg-loader',
57+
});
58+
},
59+
},
60+
};
61+
```
62+
63+
## Example usage
64+
``` vue
3065
<template>
31-
<nav id="menu">
32-
<a href="...">
33-
<SomeIcon class="icon" />
34-
Some page
66+
<nav>
67+
<a href="https://github.com/vuejs/vue">
68+
<VueLogo />
69+
Vue
70+
</a>
71+
<a href="https://github.com/svg/svgo">
72+
<SVGOIcon />
73+
SVGO
74+
</a>
75+
<a href="https://github.com/webpack/webpack">
76+
<WebpackIcon />
77+
webpack
3578
</a>
3679
</nav>
3780
</template>
38-
3981
<script>
40-
import SomeIcon from './assets/some-icon.svg';
82+
import VueLogo from './public/vue.svg';
83+
import SVGOIcon from './public/svgo.svg';
84+
import WebpackIcon from './public/webpack.svg';
4185
4286
export default {
43-
name: 'menu',
87+
name: 'Example',
4488
components: {
45-
SomeIcon,
89+
VueLogo,
90+
SVGOIcon,
91+
WebpackIcon,
4692
},
4793
};
4894
</script>
4995
```
50-
---
51-
*The idea behind this was inspired by [react-svg-loader](https://github.com/boopathi/react-svg-loader)*.

0 commit comments

Comments
 (0)