The definitive source of the best
JavaScript libraries, frameworks, and plugins.

  • ×


    SVGO is a Nodejs-based tool for optimizing SVG vector graphics files.
    Filed under  › 

    • 🔾83%Overall
    • 6,008
    • 3.2 days
    • 🕩450
    • 👥21

    english | русский


    SVGO NPM version Dependency Status Build Status Coverage Status

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


    SVG files, especially exported from various editors, usually contain 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
      svgo [OPTIONS] [ARGS]
      -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 or JSON string 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)
      -q, --quiet : Only output error messages, not regular status messages
      --pretty : Make SVG pretty printed
      --show-plugins : Show available plugins and exit
      --multipass : Enable multipass
      --indent=INDENT : Indent number when pretty printing SVGs
      INPUT : Alias to --input
      OUTPUT : Alias to --output
    • with files:

        $ svgo test.svg


        $ 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


        $ 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
    • as a Telegram Bot – svgo_bot
    • as a PostCSS plugin - postcss-svgo

    License and copyrights

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

    Logo by Yegor Bolshakov.

    Show All