如何查看一个Composer包具体的下载来源URL?(show -p)

11次阅读

运行 composer show -p vendor/package-name 可查看包的源码下载地址(git 仓库 URL 或 ZIP 下载链接),需确保包名格式为 vendor/name,-p 实际表示显示源位置而非平台信息。

如何查看一个Composer包具体的下载来源URL?(show -p)

直接运行 composer show -p vendor/package-name 即可查看该包的源码下载地址(如 Git 仓库 URL 或 ZIP 包地址)。

确认包名格式是否正确

Composer 包名必须是 vendor/name 格式,例如 monolog/monologlaravel/framework。如果只输 monologframework,命令会报错或找不到包。

  • 不确定包名?先运行 composer show 列出所有已安装包
  • 想查未安装的包?加 --all 参数:composer show -p --all monolog/monolog

理解 -p 输出的实际含义

-p(即 --platform 的缩写)在这里其实是历史遗留命名误差——它**并非指平台信息**,而是触发 Composer 显示包的“源位置”(source),即实际拉取代码的位置:

  • 对 Git 包:显示 git://https://ssh:// 形式的仓库地址
  • 对 dist 包(ZIP/TAR):显示 dist.url 字段,通常是 github/gitlab 的归档下载链接
  • 若包通过 path repository 本地引入,则显示本地路径

配合 composer show 查看完整元数据

仅看 URL 不够?用不带 -p 的命令获取更全面信息:

  • composer show vendor/package-name:显示版本、描述、依赖、关键词等
  • 其中 source 行对应 -p 的输出,dist 行则给出压缩包 URL 和校验值
  • 注意:某些包可能同时定义了 source 和 dist,Composer 默认优先使用 dist(更快更稳定)

排查 URL 不可见的情况

执行 composer show -p 却没看到 URL?常见原因:

  • 包未安装成功(如 require 失败),先检查 composer install 是否完成
  • 包是通过 package 类型手动定义在 repositories 中,且未显式声明 sourcedist
  • 使用了私有仓库但认证失败,Composer 可能跳过 source 信息 —— 尝试先运行 composer update --lock 刷新 lock 文件
text=ZqhQzanResources