grunt-svgmin - 如何删除fill =" none"

时间:2017-10-17 22:44:39

标签: svg gruntjs

我正在尝试配置grunt-svgmin以删除从Adobe Illustrator导出时自动添加到透明SVG的fill="none"属性。

我目前有以下配置:

svgmin: {
        options: {
            plugins: [
                {
                    removeViewBox: false
                }, 
                {
                    removeUselessStrokeAndFill: {
                        removeNone: true
                    }
                },
                {
                    removeEmptyAttrs: true
                },
                {
                    removeTitle: true
                },
                {
                    removeAttrs: {
                        attrs: ['xmlns', 'id', 'data-name']
                    }
                }
            ]
        },
        dist: {
            files: [{
                expand: true,
                cwd: 'static/images/svgs/',
                src: ['**/*.svg'],
                dest: 'static/images/svgs/'
            }]
        }
    }

我的印象是,removeUselessStrokeAndFill插件以及removeNone选项将是我需要删除的fill="none",但它不起作用。

有没有人对我需要做些什么来推荐这项工作呢?

谢谢, 杰斯

1 个答案:

答案 0 :(得分:2)

fill="none"并非无用,原因有两个:

  1. 填充的默认值为black

  2. 这是一个可继承的属性,所以如果你有这个片段

    <g fill="none">
        <rect width="100" height="100" />
        <circle r="50" fill="red" />
    </g>
    

    矩形将获得透明填充,而圆圈将呈现红色。

  3. 您引用的选项还有另一个功能:如果grafical元素既没有可见笔划也没有可见填充,则整个元素将被删除。