Skip to content

Commit 928ed44

Browse files
committed
Let vue-loader compile the SVGs
1 parent c711f78 commit 928ed44

File tree

6 files changed

+2388
-2453
lines changed

6 files changed

+2388
-2453
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
## Installation
1010
``` bash
11-
npm i -D vue-svg-loader vue-template-compiler
11+
npm i -D vue-svg-loader
1212

13-
yarn add --dev vue-svg-loader vue-template-compiler
13+
yarn add --dev vue-svg-loader
1414
```
1515

1616
## Basic configuration
@@ -22,7 +22,7 @@ module.exports = {
2222
{
2323
test: /\.svg$/,
2424
use: [
25-
'babel-loader',
25+
'vue-loader',
2626
'vue-svg-loader',
2727
],
2828
},
@@ -39,8 +39,8 @@ module.exports = {
3939
svgRule.uses.clear();
4040

4141
svgRule
42-
.use('babel-loader')
43-
.loader('babel-loader')
42+
.use('vue-loader')
43+
.loader('vue-loader')
4444
.end()
4545
.use('vue-svg-loader')
4646
.loader('vue-svg-loader');
@@ -60,7 +60,7 @@ module.exports = {
6060
config.module.rules.push({
6161
test: /\.svg$/,
6262
use: [
63-
'babel-loader',
63+
'vue-loader',
6464
'vue-svg-loader',
6565
],
6666
});

docs/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ module.exports = {
4949
rules: [
5050
{
5151
test: /\.svg$/,
52-
use: ['babel-loader', 'vue-svg-loader'],
52+
use: ['vue-loader', 'vue-svg-loader'],
5353
},
5454
],
5555
},
@@ -69,8 +69,8 @@ module.exports = {
6969
svgRule.uses.clear();
7070

7171
svgRule
72-
.use('babel-loader')
73-
.loader('babel-loader')
72+
.use('vue-loader')
73+
.loader('vue-loader')
7474
.end()
7575
.use('vue-svg-loader')
7676
.loader('vue-svg-loader');
@@ -93,7 +93,7 @@ module.exports = {
9393

9494
config.module.rules.push({
9595
test: /\.svg$/,
96-
use: ['babel-loader', 'vue-svg-loader'],
96+
use: ['vue-loader', 'vue-svg-loader'],
9797
});
9898
},
9999
},

docs/faq.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ module.exports = {
1919
{
2020
resourceQuery: /inline/,
2121
use: [
22-
'babel-loader',
22+
'vue-loader',
2323
'vue-svg-loader',
2424
],
2525
},
@@ -49,8 +49,8 @@ module.exports = {
4949
svgRule
5050
.oneOf('inline')
5151
.resourceQuery(/inline/)
52-
.use('babel-loader')
53-
.loader('babel-loader')
52+
.use('vue-loader')
53+
.loader('vue-loader')
5454
.end()
5555
.use('vue-svg-loader')
5656
.loader('vue-svg-loader')
@@ -83,7 +83,7 @@ module.exports = {
8383
{
8484
resourceQuery: /inline/,
8585
use: [
86-
'babel-loader',
86+
'vue-loader',
8787
'vue-svg-loader',
8888
],
8989
},
@@ -147,7 +147,7 @@ module.exports = {
147147
{
148148
test: /\.svg$/,
149149
use: [
150-
'babel-loader',
150+
'vue-loader',
151151
{
152152
loader: 'vue-svg-loader',
153153
options: {
@@ -176,8 +176,8 @@ module.exports = {
176176
svgRule.uses.clear();
177177

178178
svgRule
179-
.use('babel-loader')
180-
.loader('babel-loader')
179+
.use('vue-loader')
180+
.loader('vue-loader')
181181
.end()
182182
.use('vue-svg-loader')
183183
.loader('vue-svg-loader')
@@ -206,7 +206,7 @@ module.exports = {
206206
config.module.rules.push({
207207
test: /\.svg$/,
208208
use: [
209-
'babel-loader',
209+
'vue-loader',
210210
{
211211
loader: 'vue-svg-loader',
212212
options: {
@@ -242,7 +242,7 @@ module.exports = {
242242
{
243243
test: /\.svg$/,
244244
use: [
245-
'babel-loader',
245+
'vue-loader',
246246
{
247247
loader: 'vue-svg-loader',
248248
options: {
@@ -278,8 +278,8 @@ module.exports = {
278278
svgRule.uses.clear();
279279

280280
svgRule
281-
.use('babel-loader')
282-
.loader('babel-loader')
281+
.use('vue-loader')
282+
.loader('vue-loader')
283283
.end()
284284
.use('vue-svg-loader')
285285
.loader('vue-svg-loader')
@@ -315,7 +315,7 @@ module.exports = {
315315
config.module.rules.push({
316316
test: /\.svg$/,
317317
use: [
318-
'babel-loader',
318+
'vue-loader',
319319
{
320320
loader: 'vue-svg-loader',
321321
options: {

index.js

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
1-
const svgToVue = require('svg-to-vue');
1+
const SVGO = require('svgo');
22
const { getOptions } = require('loader-utils');
33

4-
module.exports = function (content) {
4+
module.exports = async function (svg) {
55
const callback = this.async();
6-
const { svgo } = getOptions(this) || {};
7-
8-
svgToVue(content, {
9-
svgoPath: this.resourcePath,
10-
svgoConfig: svgo,
11-
})
12-
.then(component => callback(null, component))
13-
.catch(callback);
6+
const { svgo: svgoConfig } = getOptions(this) || {};
7+
8+
if (svgoConfig !== false) {
9+
const svgo = new SVGO(svgoConfig);
10+
11+
try {
12+
({ data: svg } = await svgo.optimize(svg, {
13+
path: this.resourcePath,
14+
}));
15+
} catch (error) {
16+
callback(error);
17+
return;
18+
}
19+
}
20+
21+
callback(null, `<template>${svg.replace('<svg', '<svg v-on="$listeners"')}</template>`)
1422
};

package.json

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,10 @@
2020
"author": "Damian Stasik <[email protected]>",
2121
"main": "index.js",
2222
"dependencies": {
23-
"loader-utils": "^2.0.0",
24-
"svg-to-vue": "^0.7.0"
23+
"loader-utils": "^2.0.0"
2524
},
2625
"devDependencies": {
2726
"vue-tabs-component": "^1.5.0",
28-
"vuepress": "^1.2.0"
29-
},
30-
"peerDependencies": {
31-
"vue-template-compiler": "^2.0.0"
27+
"vuepress": "^1.5.3"
3228
}
3329
}

0 commit comments

Comments
 (0)