grunt task svgmin从符号标记中删除id

时间:2014-08-16 17:36:09

标签: svg gruntjs

我在sag文件中使用带有id的符号标记,如以下链接所述: http://css-tricks.com/svg-symbol-good-choice-icons/

使用grunt任务svgmin放大后,我的所有ID都会从我的svg文件中删除。

我的咕噜声任务如下:

svgmin: {
    options: {
      plugins: [
        { removeViewBox: false},
        { removeUselessStrokeAndFill: false}, 
        { removeEmptyAttrs: false }
      ]
    },

  dist: {
    files: [{
      expand: true,
      cwd: '<%= yeoman.app %>/images',
      src: '{,*/}*.svg',
      dest: '<%= yeoman.dist %>/images'
    }]
  }
},

这个问题有解决方法吗?

2 个答案:

答案 0 :(得分:2)

以下适用于我。

svgmin: {
      options: {
        full: true,
        plugins: [
          {cleanupIDs: false},                  // don't remove  ids
          {removeViewBox: false},               // don't remove the viewbox atribute from the SVG
          {removeUselessStrokeAndFill: false},  // don't remove Useless Strokes and Fills
          {removeEmptyAttrs: false}             // don't remove Empty Attributes from the SVG
        ]
      },
      dist: {
        files: [{
          expand: true,
          cwd: '<%= yeoman.app %>/images',
          src: '{,*/}*.svg',
          dest: '<%= yeoman.dist %>/images'
        }]
      }
    }

{cleanupIDs:false} 单独无法按here报告的方式运行。解决方案是添加 full:true ,如上面提到的示例所示。我正在使用 “grunt-svgmin”进行测试:“^ 0.4.0”

答案 1 :(得分:0)

您需要将cleanupIDs插件设置为false,因为默认设置为true。只需在removeEmptyAttrs行之后添加:

{cleanupIDs:false}

不要忘记上一个大括号之后的逗号:)

以下是您可以禁用/启用的SVGO插件的完整列表:https://github.com/svg/svgo/tree/master/plugins