Skip to content
forked from svg/svgo

Nodejs-based tool for optimizing SVG vector graphics files.

License

Notifications You must be signed in to change notification settings

cycle-chen/svgo

Repository files navigation

english | русский


logo

SVGO NPM versionDependency StatusBuild StatusCoverage Status

SVG Optimizer is a Nodejs-based tool for optimizing SVG vector graphics files.

Why?

SVG files, especially exported from various editors, usually contains a lot of redundant and useless information such as editor metadata, comments, hidden elements, default or non-optimal values and other stuff that can be safely removed or converted without affecting SVG rendering result.

What it can do

SVGO has a plugin-based architecture, so almost every optimization is a separate plugin.

Today we have:

Want to know how it works and how to write your own plugin? Of course you want to.

How to use

$ [sudo] npm install -g svgo
Usage: svgo [OPTIONS] [ARGS] Options: -h, --help : Help -v, --version : Version -i INPUT, --input=INPUT : Input file, "-" for STDIN -s STRING, --string=STRING : Input SVG data string -f FOLDER, --folder=FOLDER : Input folder, optimize and rewrite all *.svg files -o OUTPUT, --output=OUTPUT : Output file or folder (by default the same as the input), "-" for STDOUT -p PRECISION, --precision=PRECISION : Set number of digits in the fractional part, overrides plugins params --config=CONFIG : Config file to extend or replace default --disable=DISABLE : Disable plugin by name --enable=ENABLE : Enable plugin by name --datauri=DATAURI : Output as Data URI string (base64, URI encoded or unencoded) --pretty : Make SVG pretty printed --show-plugins : Show available plugins and exit Arguments: INPUT : Alias to --input OUTPUT : Alias to --output 
  • with files:

     $ svgo test.svg 

    or:

     $ svgo test.svg test.min.svg 
  • with STDIN / STDOUT:

     $ cat test.svg | svgo -i - -o - > test.min.svg 
  • with folder

     $ svgo -f ../path/to/folder/with/svg/files 

    or:

     $ svgo -f ../path/to/folder/with/svg/files -o ../path/to/folder/with/svg/output 
  • with strings:

     $ svgo -s '<svg version="1.1">test</svg>' -o test.min.svg 

    or even with Data URI base64:

     $ svgo -s 'data:image/svg+xml;base64,…' -o test.min.svg 
  • with SVGZ:

    from .svgz to .svg:

     $ gunzip -c test.svgz | svgo -i - -o test.min.svg 

    from .svg to .svgz:

     $ svgo test.svg -o - | gzip -cfq9 > test.svgz 
  • with GUI – svgo-gui

  • as a web app - SVGOMG

  • as a Nodejs module – examples

  • as a Grunt task – grunt-svgmin

  • as a Gulp task – gulp-svgmin

  • as a Mimosa module – mimosa-minify-svg

  • as an OSX Folder Action – svgo-osx-folder-action

  • as a webpack loader – image-webpack-loader

Donate

BTC 1zVZYqRSzQ4aaL27rp3PLwFFSXpfs5H8r

License and copyrights

This software is released under the terms of the MIT license.

Logo by Yegor Bolshakov.

About

Nodejs-based tool for optimizing SVG vector graphics files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript99.8%
  • Makefile0.2%