composer status 用于检查 vendor/ 目录下已安装包是否被本地修改;默认仅显示 MODIFIED 包,加 -v 可列出全部并标注 OK 或 MODIFIED 状态。

composer status 命令用于检查 vendor/ 目录下已安装的包是否被本地修改过(比如手动改了某依赖的源码、加了调试代码、删了文件等)。它会对比当前 vendor/ 中的文件与该包在 composer.lock 中记录的原始压缩包(或 git 提交)内容是否一致。
运行命令很简单
在项目根目录(即有 composer.json 和 composer.lock 的地方)执行:
composer status
默认情况下,它只显示**有修改**的包。如果所有包都干净,就什么也不输出(静默成功)。
查看所有包(包括未修改的)
加 -v(verbose)参数可列出全部包,并标注状态:
composer status -v
输出中:
• OK 表示该包未被改动;
• MODIFIED 表示检测到文件差异(如新增、删除、修改)。
常见触发 MODIFIED 的情况
- 手动编辑了
vendor/some/package/src/Helper.php - 在
vendor/下新增了临时测试文件(如test.php) - 删掉了某个包里的文档或测试目录(
docs/、tests/) - 用
git checkout或 ide 切换过vendor/内某个包的分支(但没还原)
注意点
- 它不检查
composer.json是否和lock同步——那是composer validate或composer update --dry-run的事 - 对使用
path仓库的本地包,默认跳过检查(可加--ignore-platform-reqs也无效,需手动确认) - 如果提示 “The lock file is not up to date” ,先运行
composer update --lock或composer install再试
基本上就这些。日常开发中,跑一次 composer status 能快速发现“谁动了 vendor”,避免上线时因意外修改引发奇怪问题。
以上就是如何使用 composer status 检查 vendor 目录是否有本地修改?的详细内容,更多请关注php中文网其它相关文章!