Composer的outdated --direct命令用于检查composer.json中直接声明的依赖包是否有可用更新,忽略所有间接依赖。它帮助开发者聚焦于自己引入的库是否需要升级,避免被大量子依赖的更新信息干扰。例如,若项目中require了monolog/monolog和guzzlehttp/guzzle,该命令仅检查这两个包在当前版本约束下的最新可用版本。常见于定期维护时评估直接依赖的更新需求,结合^或~等版本约束判断是否需手动调整composer.json。与默认outdated命令不同,后者会列出所有过期包(包括嵌套依赖),输出冗长且多数无关紧要。--direct选项过滤后结果更简洁、具操作性,是管理项目核心依赖的实用工具。

Composer 的 outdated --direct 命令用于检查项目中直接声明的依赖包是否有可用更新,同时忽略所有间接依赖(即嵌套的子依赖)。
作用说明
该命令帮助你快速识别哪些你自己在 composer.json 中明确添加的包已经不是最新版本,而不会被大量第三方库的子依赖更新信息干扰。例如,你在项目中直接 require 了 monolog/monolog 和 guzzlehttp/guzzle,运行:
composer outdated --direct
只会检查这两个包及其允许版本范围内的最新版,如果存在更符合约束的新版本,就会列出。
常见使用场景
- 定期维护项目时,想了解自己引入的库是否需要升级
- 避免被动升级大量间接依赖,聚焦于自己代码有直接影响的包
- 结合版本约束(如 ~ 或 ^)判断是否应手动更新 composer.json
与默认 outdated 的区别
不加 --direct 时,Composer 会列出所有过期的包,包括层层嵌套的子依赖,输出可能很长且多数与当前项目无直接关系。加上 --direct 后,结果更简洁、更具操作性。基本上就这些 —— 它就是一个帮你“只看自己负责的部分”的实用过滤选项。










