You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SVGO removeAttrs不生效?命令行通配符*无法识别?

问题1:SVGO配置未移除style属性和viewBox

原因分析

  1. 配置文件语法错误:你的配置里写的是module.export,正确的Node.js模块导出语法是module.exports(缺少末尾的s),这会导致SVGO无法正确加载配置。
  2. 插件选择错误:removeStyleElement插件的作用是移除SVG中的<style>标签,而你要移除的是元素上的style属性,这个插件对此无效。
  3. 插件重复配置:同时启用removeViewBox和removeAttrs中的viewBox规则,可能导致冲突(核心问题还是语法错误)。

修正后的配置文件

将配置文件修改为以下内容:

module.exports = {
  plugins: [
    {
      name: "removeAttrs",
      params: {
        attrs: ["style", "viewBox"]
      }
    }
  ]
}
  • 使用removeAttrs插件直接指定要移除的属性数组,同时处理style和viewBox
  • 移除了无效的removeStyleElement和重复的removeViewBox插件

执行原命令svgo filename.svg --config=configfile.js,即可成功移除目标属性。

问题2:Windows下通配符*.svg未被识别

原因分析

Windows的命令提示符(CMD)不会自动将通配符*.svg展开为具体的文件名,而是直接将*.svg作为文件名传递给SVGO,导致SVGO找不到对应文件。

解决方法

方法1:使用PowerShell执行命令

打开PowerShell,进入SVG文件所在目录,执行:

svgo *.svg --config=configfile.js

PowerShell会自动处理通配符,将其展开为目录下所有SVG文件。

方法2:在CMD中使用for循环批量处理

在CMD中执行以下命令:

for %f in (*.svg) do svgo "%f" --config=configfile.js

该命令会遍历目录下所有SVG文件,逐个调用SVGO处理。

方法3:通过npm脚本批量处理

如果项目中有package.json,可以添加如下脚本:

{
  "scripts": {
    "svgo:batch": "svgo *.svg --config=configfile.js"
  }
}

然后执行npm run svgo:batch,npm会自动处理通配符。

内容的提问来源于stack exchange,提问作者Y.OWR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:33:36