Composer 的 status 命令用于检查 vendor/ 目录中已安装包是否被本地修改,通过对比 composer.lock 和原始安装快照识别改动文件,提醒用户避免因手动修改导致升级失败或行为异常,并支持 -v 和 --verbose 参数查看详细差异。

Composer 的 status 命令专门用来检查 vendor/ 目录下已安装包的文件是否被本地修改过。
识别哪些包的代码被改动了
它会扫描每个已安装的依赖包,对比当前文件与原始安装时的版本快照(记录在 composer.lock 和安装时的压缩包或 Git 提交中),列出所有存在差异的包,并标出被修改的文件路径。比如某个包的 src/Helper.php 被你手动改过,就会显示出来。
避免因意外修改导致升级失败或行为异常
手动修改 vendor 里的代码是高风险操作——下次运行 composer update 或 install 时,这些改动大概率会被覆盖,可能引发 bug 或功能丢失。用 status 可以提前发现这类“脏修改”,提醒你:要么撤回修改、要么把逻辑抽到自己的代码里、要么用 Composer 的 patches 或 repositories 方式合规定制。
快速验证是否干净地执行了 install/update
在 CI 流程、部署前检查或团队协作中,运行 composer status 是个轻量级的“卫生检查”。如果输出为空,说明 vendor/ 完全符合 composer.lock 状态;如果有输出,就说明环境不一致,需要干预。
- 常用命令:
composer status(默认只显示有修改的包) - 想看更详细的变化:
composer status -v(显示具体哪些文件变了) - 强制检查所有包(包括没变的):
composer status --verbose
基本上就这些——不复杂但容易忽略。










