composer remove 命令可安全卸载 PHP 包,自动删除 composer.json 条目、同步锁文件与 vendor 目录、清理无用代码;若被依赖则中止操作,支持 --no-update 跳过自动更新及自动处理 require-dev 包。

使用 composer remove 命令可以安全地从项目中卸载一个 PHP 包,它会自动完成三件事:从 composer.json 中删除该包的依赖条目、运行 composer install(或 update)以同步锁文件和 vendor 目录、并清理已无用的代码文件。
基本语法与常用用法
最简单的移除命令格式为:
composer remove vendor/package-name
例如,要移除 monolog/monolog:
composer remove monolog/monolog
Composer 会自动检测当前安装的版本、检查依赖关系,并在确认无冲突后执行移除。如果该包被其他已安装包依赖,命令会中止并提示冲突信息,不会强行删除。
立即学习“PHP免费学习笔记(深入)”;
移除时跳过自动更新(谨慎使用)
默认情况下,remove 会在删掉依赖后自动执行安装流程。如需仅修改 composer.json 而不立即更新 vendor,可加 --no-update 参数:
composer remove monolog/monolog --no-update- 之后需手动运行
composer install或composer update来同步环境 - 适用于批量修改依赖后再统一更新的场景,但容易遗漏同步,不推荐日常使用
处理开发依赖(dev-only 包)
若要移除仅用于开发环境的包(如 phpunit/phpunit),命令写法相同,Composer 会自动识别其位于 require-dev 区域并正确删除:
composer remove phpunit/phpunit
执行后,该包会从 require-dev 中消失,vendor 目录中的对应文件也会被清除。无需额外指定开发模式参数。
验证是否移除成功
移除完成后,建议快速检查三项内容:
- 打开
composer.json,确认目标包不再出现在require或require-dev中 - 运行
composer show,列表中不应再出现该包名 - 检查
vendor/目录下对应路径(如vendor/monolog/monolog)是否已被删除
如有残留,可能是因缓存或权限问题,可尝试 composer clear-cache 后重试。











