信息发布→ 登录 注册 退出

composer如何查看已安装包的License授权_composer licenses命令说明【方法】

发布时间:2026-01-02

点击量:
Composer无licenses命令,查License需用composer show或info(二者等价);show支持单包、通配符及--all配合grep/paste或PowerShell提取,但仅限已安装包,且license字段需人工核对实际许可证文本。

Composer 没有内置的 composer licenses 命令,直接运行会报错:Command "licenses" is not defined.。想查已安装包的 License 信息,得用其他方式组合实现。

composer show 查单个包的 License

这是最直接、最可靠的方式,适用于确认某个关键依赖是否符合项目合规要求。

  • composer show vendor/package-name 会输出该包的完整元数据,其中 license 字段即授权类型(如 MITGPL-2.0-or-later
  • 若包未声明 license,字段可能为空或显示 proprietary,需人工核查其 composer.json 或源码仓库
  • 支持通配符:例如 composer show monolog/* 可批量查看所有 monolog 相关包

composer show --all 导出全部包并过滤 license

适合做一次性合规扫描,但输出冗长,需配合 shell 工具提取关键字段。

  • Linux/macOS 下可这样快速提取:
    composer show --all | grep -E '^(name|license):' | sed 's/^name: //; s/^license: //; /^$/d' | paste -d' → ' - -
  • Windows PowerShell 用户可用:
    composer show --all | Select-String -Pattern "name:|license:" | ForEach-Object { $_.Line.Trim() } | % { if ($_ -match 'name: (.+)') { $n=$matches[1] } elseif ($_ -match 'license: (.+)') { "$n → $matches[1]" } }
  • 注意:--all 包含 require-dev 里的包,生产环境部署前建议加 --no-dev

composer info 替代 show

composer infocomposer show 的别名,行为完全一致,无额外功能。不要误以为它能“智能汇总 license”——它只是更短的写法。

  • 两者都只查本地 vendor/ 中已安装的包,不查 lock 文件里未安装的条目
  • vendor/ 被清理过,必须先 composer install 才能查到 license
  • 某些包的 license 字段写得不规范(比如填了 URL 而非 SPDX 标识符),需人工核对

License 信息本质来自每个包的 composer.json 中的 license 字段,Composer 不做校验也不自动解析 SPDX 含义。真正影响法律风险的是实际代码中声明的许可证文本(如 LICENSE 文件),而非 composer.json 里那一行字符串。

标签:# 标识符  # 写得  # 仅限  # 报错  # 不做  # 适用于  # 也不  # 这是  # 安装包  # 的是  # 而非  # 字符串  # linux  # require  # cos  # win  # macos  # mac  # 工具  # windows  # composer  # json  # js  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!