composer怎么查看所有全局包_composer global show查看方法

5次阅读

composer global show 可直接列出所有已安装的全局包及版本号和描述,不依赖当前目录;加 –direct 仅显示手动安装的包,加 –name-only 仅显示包名,–format=table 或 –name –version 可输出简洁的包名+版本信息。

composer怎么查看所有全局包_composer global show查看方法

直接查全局包列表:用 composer global show

想一眼看清你全局装了哪些工具(比如 laravel/installerphpunit/phpunitphp-cs-fixer),最直接的命令就是:composer global show。它会列出所有已安装的全局包,包括版本号和简短描述。

注意:这个命令不依赖当前目录位置——哪怕你在 /tmp 下运行也有效,因为它读的是全局配置,不是项目里的 composer.json

  • 如果只关心自己手动装的(排除自动拉进来的依赖),加 --directcomposer global show --direct
  • 想快速确认某个包是否在全局装了,直接指定名字:composer global show laravel/installer
  • 输出太长看不过来?加 --name-only 只显示包名:composer global show --name-only

确认全局包到底存在哪:查路径比猜靠谱

有时候 composer global show 显示包已安装,但终端却找不到命令(比如敲 php-cs-fixer 报 “command not found”),大概率是 vendor/bin 没进 PATH,或者你压根没装对地方。

先用这条命令定位真实路径:composer config --global home。它会输出类似 /home/yourname/.composerlinux/macos)或 C:UsersYourNameAppDataRoamingComposerwindows)的路径——所有全局包都放在这个目录下的 vendor/ 里。

  • 全局 bin 目录是 [home]/vendor/bin,不是 [home]/bin,别找错
  • 确保该 bin 目录已加入系统 PATH,否则命令无法全局调用
  • Windows 用户注意:%APPDATA%ComposerVendorbin 是实际路径,环境变量里要填对

只看版本号?用 --format=table--name --version

CI 脚本或快速审计时,不需要描述、不需要依赖树,只要干净的「包名 + 版本」两列数据。

composer global show --format=table 输出整齐表格,默认就包含这两列;更轻量的写法是:composer global show --name --version,每行一个包,空格分隔,方便管道处理(比如 | grep "phpunit")。

  • --format=json 适合脚本解析,但要注意:全局插件需额外检查 "type": "composer-plugin"
  • 别用 composer show(无 global)查全局包——它只会扫当前项目,结果为空也不奇怪
  • --installed 对全局命令意义不大,因为 global show 默认就只显示已安装的

常见误操作:把项目命令当全局用,或反过来

最常踩的坑是混淆作用域composer showcomposer global show 查的根本不是同一套东西,不能互相替代。

例如你在项目里运行 composer require phpunit/phpunit,它只会出现在 composer show 结果里;而用 composer global require phpunit/phpunit,才进 global show 列表。两者文件路径、加载机制、调用方式全都不一样。

  • 全局包不能被项目代码 require,它们不在项目 vendor/ 下,autoloader 也扫不到
  • 项目中 composer update 不会影响全局包,反之亦然
  • 删错包?composer global remove vendor/package 才是正解,别去手动删 ~/.composer/vendor 目录

路径、作用域、PATH 配置——这三个点漏掉任何一个,global show 就可能“显示有,但用不了”。

text=ZqhQzanResources