2017-06-21 125 views
0
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
    <defs></defs> 
    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 
     <g id="icons" transform="translate(-368.000000, -426.000000)"> 
      <g id="attention-blue" transform="translate(368.000000, 426.000000)"> 
       <circle id="Oval-13" fill="#34C6D9" cx="10" cy="10" r="10"></circle> 
       <path d="M10,10.8 L10,5.6" id="Line" stroke="#FFFFFF" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path> 
       <path d="M10,14.8 L10,14.8" id="Line2" stroke="#FFFFFF" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path> 
      </g> 
     </g> 
    </g> 
</svg> 

我有两个“路径”标记的SVG图标。在用imagemin.svgo imagemin构建之后,删除这个“路径”中的一个,我的图标看起来非常糟糕。我怎样才能解决这个问题?Imagemin svgo删除路径

gimagemin.svgo({ 
    plugins: [ 
     {minifyStyles: false}, 
     { removeViewBox: false }, 
     { removeUselessStrokeAndFill: false }, 
     { cleanupIDs: false } 
     ] 
    }) 

这是我的选择。

回答

0

实际上,SVGO并没有删除第二个路径,它将它合并到第一个路径中(它通过默认启用的“mergePath”插件完成)。 但是,由于第二条路径长度为零,因此SVGO删除了“lineto”(“L10,14.8”)命令(“convertPathData”插件是这样做的),因此它减少为无用的“moveto”(M10 14.8)命令。

我建议不要以这种风格绘制图像。您可以使用另一个<circle>,或在arc curves的路径中绘制一个圆圈。

当然,您可以禁用“convertPathData”插件为这个特定的图像,但我不建议它作为一个通用的解决方案,因为它是基本的优化插件之一。