Skip to content

Commit dfecd39

Browse files
authored
feat(webpack): include Babel transformation (#48)
Closes #45
1 parent 56a111f commit dfecd39

13 files changed

Lines changed: 770 additions & 881 deletions

File tree

.babelrc

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
{
22
"presets": [
3-
["env", {
4-
"targets": {
5-
"node": "6"
3+
[
4+
"@babel/preset-env",
5+
{
6+
"targets": {
7+
"node": "6"
8+
}
69
}
7-
}]
10+
]
811
],
912
"plugins": [
10-
"transform-class-properties",
11-
"transform-object-rest-spread"
13+
"@babel/plugin-proposal-class-properties",
14+
"@babel/plugin-proposal-object-rest-spread"
1215
]
1316
}

README.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ In your `webpack.config.js`:
230230
```js
231231
{
232232
test: /\.svg$/,
233-
use: ['babel-loader', 'svgr/webpack'],
233+
use: ['svgr/webpack'],
234234
}
235235
```
236236

@@ -252,7 +252,6 @@ const App = () => (
252252
{
253253
test: /\.svg$/,
254254
use: [
255-
'babel-loader',
256255
{
257256
loader: 'svgr/webpack',
258257
options: {
@@ -272,7 +271,7 @@ In your `webpack.config.js`:
272271
```js
273272
{
274273
test: /\.svg$/,
275-
use: ['babel-loader', 'svgr/webpack', 'url-loader'],
274+
use: ['svgr/webpack', 'url-loader'],
276275
}
277276
```
278277

@@ -289,6 +288,29 @@ const App = () => (
289288
)
290289
```
291290

291+
### Use your own Babel configuration
292+
293+
By default, `svgr/webpack` includes a `babel-loader` with [optimized configuration](https://github.com/smooth-code/svgr/blob/master/src/webpack.js). In some case you may want to apply a custom one (if you are using Preact for an example). You can turn off Babel transformation by specifying `babel: false` in options.
294+
295+
```js
296+
// Example using preact
297+
{
298+
test: /\.svg$/,
299+
use: [
300+
{
301+
loader: 'babel-loader',
302+
options: {
303+
presets: ['preact', 'env'],
304+
},
305+
},
306+
{
307+
loader: 'svgr/webpack',
308+
options: { babel: false },
309+
}
310+
],
311+
}
312+
```
313+
292314
## Options
293315

294316
SVGR ships with a handful of customizable options, usable in both the CLI and

examples/webpack/.babelrc

Lines changed: 0 additions & 1 deletion
This file was deleted.

examples/webpack/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

examples/webpack/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
{
22
"name": "svgr-webpack-example",
33
"devDependencies": {
4-
"babel-core": "^6.26.0",
5-
"babel-loader": "^7.1.2",
64
"url-loader": "^0.6.2",
75
"webpack": "^3.10.0"
86
}

examples/webpack/webpack.config.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,11 @@ module.exports = {
1010
rules: [
1111
{
1212
test: /url\.svg$/,
13-
use: [
14-
'babel-loader',
15-
require.resolve('../../lib/webpack'),
16-
'url-loader',
17-
],
13+
use: [require.resolve('../../webpack'), 'url-loader'],
1814
},
1915
{
2016
test: /simple\.svg$/,
21-
use: ['babel-loader', require.resolve('../../lib/webpack')],
22-
},
23-
{
24-
test: /\.js$/,
25-
use: ['babel-loader'],
17+
use: [require.resolve('../../webpack')],
2618
},
2719
],
2820
},

0 commit comments

Comments
 (0)