UNPKG

svg-inline-loader

Version:

Cleans up and inlines your SVG files into Webpack module.

154 lines (110 loc) 4.55 kB
[![npm][npm]][npm-url] [![deps][deps]][deps-url] [![test][test]][test-url] [![coverage][cover]][cover-url] [![chat][chat]][chat-url] <div align="center"> <!-- replace with accurate logo e.g from https://worldvectorlogo.com/ --> <a href="https://github.com/webpack/webpack"> <img width="200" height="200" vspace="" hspace="25" src="https://cdn.rawgit.com/webpack/media/e7485eb2/logo/icon.svg"> </a> <h1>SVG Inline Loader for Webpack</h1> <p>This Webpack loader inlines SVG as module. If you use Adobe suite or Sketch to export SVGs, you will get auto-generated, unneeded crusts. This loader removes it for you, too.<p> </div> <h2 align="center">Install</h2> ```bash npm install svg-inline-loader --save-dev ``` <h2 align="center">Configuration</h2> Simply add configuration object to `module.loaders` like this. ```javascript { test: /\.svg$/, loader: 'svg-inline-loader' } ``` warning: You should configure this loader only once via `module.loaders` or `require('!...')`. See [#15](https://github.com/webpack-contrib/svg-inline-loader/issues/15) for detail. <h2 align="center">Query Options</h2> #### `removeTags: boolean` Removes specified tags and its children. You can specify tags by setting `removingTags` query array. default: `removeTags: false` #### `removingTags: [...string]` warning: this won't work unless you specify `removeTags: true` default: `removingTags: ['title', 'desc', 'defs', 'style']` #### `warnTags: [...string]` warns about tags, ex: ['desc', 'defs', 'style'] default: `warnTags: []` #### `removeSVGTagAttrs: boolean` Removes `width` and `height` attributes from `<svg />`. default: `removeSVGTagAttrs: true` #### `removingTagAttrs: [...string]` Removes attributes from inside the `<svg />`. default: `removingTagAttrs: []` #### `warnTagAttrs: [...string]` Warns to console about attributes from inside the `<svg />`. default: `warnTagAttrs: []` #### `classPrefix: boolean || string` Adds a prefix to class names to avoid collision across svg files. default: `classPrefix: false` #### `idPrefix: boolean || string` Adds a prefix to ids to avoid collision across svg files. default: `idPrefix: false` <h2 align="center">Example Usage</h2> ```js // Using default hashed prefix (__[hash:base64:7]__) var logoTwo = require('svg-inline-loader?classPrefix!./logo_two.svg'); // Using custom string var logoOne = require('svg-inline-loader?classPrefix=my-prefix-!./logo_one.svg'); // Using custom string and hash var logoThree = require('svg-inline-loader?classPrefix=__prefix-[sha512:hash:hex:5]__!./logo_three.svg'); ``` See [loader-utils](https://github.com/webpack/loader-utils#interpolatename) for hash options. Preferred usage is via a `module.loaders`: ```js { test: /\.svg$/, loader: 'svg-inline-loader?classPrefix' } ``` <h2 align="center">Maintainers</h2> <table> <tbody> <tr> <td align="center"> <img width="150" height="150" src="https://avatars3.githubusercontent.com/u/166921?v=3&s=150"> </br> <a href="https://github.com/bebraw">Juho Vepsäläinen</a> </td> <td align="center"> <img width="150" height="150" src="https://avatars2.githubusercontent.com/u/8420490?v=3&s=150"> </br> <a href="https://github.com/d3viant0ne">Joshua Wiens</a> </td> <td align="center"> <img width="150" height="150" src="https://avatars3.githubusercontent.com/u/533616?v=3&s=150"> </br> <a href="https://github.com/SpaceK33z">Kees Kluskens</a> </td> <td align="center"> <img width="150" height="150" src="https://avatars3.githubusercontent.com/u/3408176?v=3&s=150"> </br> <a href="https://github.com/TheLarkInn">Sean Larkin</a> </td> </tr> <tbody> </table> [npm]: https://img.shields.io/npm/v/svg-inline-loader.svg [npm-url]: https://npmjs.com/package/svg-inline-loader [deps]: https://david-dm.org/webpack-contrib/svg-inline-loader.svg [deps-url]: https://david-dm.org/webpack-contrib/svg-inline-loader [chat]: https://img.shields.io/badge/gitter-webpack%2Fwebpack-brightgreen.svg [chat-url]: https://gitter.im/webpack/webpack [test]: https://travis-ci.org/webpack-contrib/svg-inline-loader.svg?branch=master [test-url]: https://travis-ci.org/webpack-contrib/svg-inline-loader [cover]: https://codecov.io/gh/webpack-contrib/svg-inline-loader/branch/master/graph/badge.svg [cover-url]: https://codecov.io/gh/webpack-contrib/svg-inline-loader