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

在M1 Pro设备ZSH环境下运行uglifyjs出现报错如何解决?

ZSH环境下执行uglifyjs命令报错的解决方案

报错原因

ZSH默认开启了通配符(glob)匹配校验,命令参数中的[]会被识别为文件匹配通配符,当无法匹配到对应本地文件时,就会抛出zsh: no matches found: reserved=[$,require,exports]错误。
Bash默认逻辑为通配符匹配不到文件时,直接将原始参数传递给执行程序,因此不会触发报错。

修复方案

方案1:用引号包裹含特殊字符的参数

将包含方括号的参数部分用单引号包裹,避免ZSH对其进行通配符展开,修改后完整命令如下:

uglifyjs js/script.js --compress --mangle --output js/script.min.js -m 'reserved=["$","require","exports"]'

单引号会阻止ZSH解析内部的特殊字符,参数会原样传递给uglifyjs。

方案2:临时禁用当前命令的通配符展开

在命令前添加noglob前缀,让ZSH不对该命令的参数做通配符解析,直接传递给程序:

noglob uglifyjs js/script.js --compress --mangle --output js/script.min.js -m reserved=['$','require','exports']

方案3:全局修改ZSH通配符行为(可选)

如果希望ZSH在通配符匹配不到文件时和Bash行为一致,不抛出错误直接传递原始参数,可以在~/.zshrc配置文件中添加如下配置:

setopt NO_NOMATCH

修改保存后执行source ~/.zshrc生效即可。

内容的提问来源于stack exchange,提问作者Salman Haider

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:09:04