如何使用Composer outdated –direct只检查直接依赖的过期包?(项目维护)

1次阅读

composer outdated –direct 只列出 composer.json 中声明的直接依赖更新,不包含子依赖;对比 composer.lock 与 Packagist 最新稳定版,仅显示有更新的直接包,带 * 表示主版本不兼容升级。

如何使用Composer outdated –direct只检查直接依赖的过期包?(项目维护)

直接运行 composer outdated --direct 即可只列出项目 composer.json 中声明的直接依赖(即 root requirements),不包含它们所依赖的子依赖(transitive dependencies)。

确认是否真的只查直接依赖

该命令默认行为就是聚焦于你手动写在 composer.jsonrequirerequire-dev 里的包。它会对比当前锁定版本(composer.lock)与 Packagist 上可用的最新稳定版本,仅显示有更新的直接依赖。

  • 不会显示例如 symfony/polyfill-php81 这类被 symfony/framework-bundle 拉进来的间接包
  • 如果某个直接依赖本身已是最新版(或满足约束且无更高兼容版),就不会出现在列表中
  • * 标记的条目表示存在语义化版本不兼容的更新(如从 v2.x 升到 v3.x)

常用搭配用法

提升可读性或辅助升级决策:

如何使用Composer outdated –direct只检查直接依赖的过期包?(项目维护)

美图AI开放平台

美图推出的AI人脸图像处理平台

如何使用Composer outdated –direct只检查直接依赖的过期包?(项目维护) 111

查看详情 如何使用Composer outdated –direct只检查直接依赖的过期包?(项目维护)

  • composer outdated --direct --minor-only:只显示次版本更新(如 2.3 → 2.4),跳过主版本升级
  • composer outdated --direct --format=json:输出 JSON,适合脚本解析
  • composer outdated --direct --all:同时检查 requirerequire-dev(默认只查 require

注意几个易忽略点

避免误判或漏检:

  • 确保已执行过 composer update 或至少有有效的 composer.lock,否则比对基准可能过时
  • 某些包可能设置了 "minimum-stability": "stable""prefer-stable": true,影响“最新版”的判定逻辑
  • --direct 不等于“安全更新”,需额外用 composer audit(Composer 2.5+)或 security-checker 工具检查漏洞

基本上就这些。用好 --direct 能帮你快速聚焦维护重点,避免被嵌套依赖的更新噪音干扰。

以上就是如何使用Composer outdated –direct只检查直接依赖的过期包?(项目维护)的详细内容,更多请关注php中文网其它相关文章!

text=ZqhQzanResources