composer怎么查看过期依赖_composer outdated命令【技巧】-composer

composer outdated 显示的包版本与 composer.json 不一致,因为它比对的是 vendor 中已安装版本在 packagist 上是否存在满足当前 require 约束的新稳定版,而非直接对照 composer.json 的版本约束;例如 “^2.8” 已装 2.8.1 但存在 2.9.0 会提示过期,而 3.0.0 因不满足约束则不显示。

composer outdated 显示的包版本为什么和 composer.json 不一致

因为 composer outdated 默认检查的是「已安装的依赖」在当前仓库(Packagist)上是否有更新,而不是比对 composer.json 中写的约束范围。它看的是 vendor/ 里实际装的版本,再查这些版本是否还有满足你当前 require 规则的新版可升。

  • 比如 "monolog/monolog": "^2.8",你装了 2.8.1,但官方已发 2.9.0 —— 它会标为过期;但如果最新是 3.0.0,而 ^2.8 不允许升到 3.x,那它就不会显示
  • 如果某个包在 composer.json 里用 "dev-main" 或 "dev-develop" 这类开发分支,outdated 通常不报——它只查稳定标签(tag),不跟踪分支 HEAD
  • 私有仓库或 VCS 包若没配置 repositories 或镜像同步延迟,也可能漏判

怎么让 outdated 只看直接依赖(忽略子依赖)

加 --direct 参数,否则默认连所有传递依赖都扫一遍,输出几十页根本没法盯重点。

  • composer outdated --direct:只列出你在 composer.json 的 require 和 require-dev 里手动写的包
  • 搭配 --minor-only 可进一步过滤:只显示同主版本内的小版本更新(比如 2.8 → 2.9),跳过 2.x → 3.x 这种可能破兼容的
  • 想导出成表格方便筛选?用 composer outdated --format=json,然后 pipe 给 jq 处理,比肉眼扫强得多

为什么有的包明明有新版却不显示在 outdated 结果里

常见原因就三个:锁文件干扰、版本约束太松、或者包本身被标记为“ignore”。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » composer怎么查看过期依赖_composer outdated命令【技巧】-composer
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4008821+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4008821+
  • 本周更新: 0+
  • 最后更新: 2026-03-16