如何过滤Composer输出的https://repo.packagist.org相关Info提示
Composer隐藏Packagist源提示信息的实现方案
目前有两类成熟方案可以屏蔽这类参考价值不高的源公告提示,优先使用Composer原生配置方案,无副作用不会误拦截正常输出。
原生配置禁用(推荐)
Composer官方提供了专门的配置项用来关闭包仓库的推广/公告类信息推送,执行对应命令即可生效,不会影响正常的安装进度、报错、警告类信息输出:
全局生效(所有项目都屏蔽)执行:composer config --global repo.packagist.allow-promotions false
仅当前项目生效的话,进入项目根目录执行(去掉--global参数):composer config repo.packagist.allow-promotions falseShell输出路由过滤
如果使用的是较老版本Composer、没有上述配置项,可以通过管道过滤输出内容,匹配丢弃对应提示行即可,不同环境写法如下:- Linux/macOS(Bash/Zsh等Shell环境)
单次执行命令过滤示例(以install命令为例):composer install 2>&1 | grep -v "^Info from https://repo.packagist.org:"
要长期生效可以写Shell别名,把下面这行加到~/.bashrc或~/.zshrc配置文件末尾:alias composer='f() { command composer "$@" 2>&1 | grep -v "^Info from https://repo.packagist.org:"; };f'
保存后执行source ~/.zshrc(对应你自己使用的Shell配置文件路径),后续所有composer命令都会自动过滤对应提示。 - Windows(PowerShell环境)
单次执行过滤示例:composer install 2>&1 | Select-String -Pattern "^Info from https://repo.packagist.org:" -NotMatch
同样可以将过滤逻辑写入PowerShell配置文件实现永久生效。
- Linux/macOS(Bash/Zsh等Shell环境)
注意:使用管道过滤时要合并标准错误、标准输出流再做匹配,避免出现正常报错被误拦截、或者提示行漏过滤的问题。
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

