Releases: gregberge/svgr
v3.0.0
Bug Fixes
- rollup: forward filePath in rollup plugin (461492b), closes #177 #188
- webpack: forward filePath in webpack loader (b7a108e), closes #177 #188
- fix --icon + --no-dimensions (7535693), closes #141
- fix expandProps when position is not allowed (45522fc)
Features
- config: improve runtime config (e52cdce), closes #192
- template: expose
getProps
util for template (5cb238e), closes #187 - add synchronous API (169eb2f), closes #185
- always prefix component name with "Svg" (f71aa7a), closes #190
- do not remove style tag (a4ce09a), closes #191
- new "expandProps" option (bb95828), closes #170
- remove "svgAttributes" option (4e46a5d), closes #173
- use forwardRef on React Native (4bdd989), closes #184
- use React.forwardRef (cbee51c), closes #184
BREAKING CHANGES
- "--no-expand-props" is now replaced by "--expand-props none". You can now specify a position "start" or "end" for "expandProps"
property. svgAttributes
has been removed, please usesvgProps
instead.- "ref" option now uses
React.forwardRef
. You don't have to use "svgRef"
prop, just use "ref" and it will work.React.forwardRef
requires React v16.3+. - Style tag will no longer be automatically removed. SVGO should handle it
correctly using "inlineStyles" plugin. If you want to remove them,
enable "removeStyleElement" plugin in your SVGO config. - rollup: runtime configuration is now loaded using rollup plugin.
- webpack: runtime configuration is now loaded using webpack
loader. - config: - Runtime configuration is always loaded (even with Node API
convert
)
- In CLI, "--config" is now "--config-file"; this new option can be used
everywhere
v2.4.1
v2.4.0
v2.3.0
v2.2.1
v2.2.0
v2.1.1
v2.1.0
v2.0.0
Features
Project configurations
SVGR now supports Prettier (.prettierc
) and SVGO (.svgo.yml
) configurations. It also supports a new .svgrrc
configuration. See the readme for more detail.
Rollup plugin
Rollup has now an official SVGR plugin available under @svgr/rollup
.
Split into several modules
SVGR is now an ecosystem of four modules:
@svgr/core
: Core of SVGR, it exposes the Node API@svgr/cli
: Command Line Interface@svgr/webpack
: webpack loader@svgr/rollup
: a fresh new Rollup plugin
svgAttributes
and titleProp
options
Two new options appears, the first one svgAttributes
gives you the opportunity to add attribute on the root svg
tag without creating a custom template:
Command:
svgr --svg-attributes focusable=true foo.svg
Output:
props => <svg focusable="false" />
The second one, titleProp
, adds a custom property title
to specify the title of the SVG.
Command:
svgr --title-prop foo.svg
Output:
({ title }) => <svg><title>{title}</title></svg>
Breaking changes
Node version
Node v6 support has been dropped, you need Node >= 8 to run SVGR.
Prettier options
All Prettier options have been removed:
jsx-bracket-same-line
no-bracket-spacing
no-semi
single-quote
tab-width
trailing-comma
use-tabs
If you used it, use a .prettierrc
instead of use the new option --prettier-config
:
v1.x:
svgr --no-semi file.svg
v2.x:
svgr --prettier-config '{"semi": true}' file.svg
SVGO options
All SVGO options have been removed:
ids
keep-useless-defs
no-title
no-view-box
precision
If you used it, use a .svgo.yml
instead of use the new option --svgo-config
:
v1.x:
svgr --ids file.svg
v2.x:
svgr --svgo-config '{"plugins": [{"cleanupIDs": {"remove": false, "minify": false}}]}' file.svg
Other options
replace-attr-value
has been renamed intoreplace-attr-values
In API, replaceAttrValues
is now an object instead of an array.
Node API changes
rawConvert
method has been dropped- Templates now receive three arguments:
code
,config
andstate
componentName
must now be passed in state
Thanks
Thanks to @MarquesDev and @lifeiscontent.