执行 composer remove –no-update 会从 composer.json 中移除指定包但不立即更新 vendor 和 composer.lock,仅标记删除,实际清理需后续运行 composer update 完成。

执行 composer remove –no-update 命令会从 composer.json 文件中移除你指定的依赖包,但不会立即更新 vendor/ 目录和 composer.lock 文件。
具体效果说明
这个命令的主要作用是“标记”要删除的包,实际的删除操作被延迟。以下是详细行为:
- 从
composer.json的require或require-dev中删除你指定的包 - 不会重新安装或卸载任何文件,
vendor/目录保持原样 - 不会生成新的
composer.lock文件 - 适合在批量修改依赖时使用,避免多次执行耗时的安装过程
典型使用场景
当你需要一次性删除多个包时,可以分步操作以提高效率:
- composer remove vendor/package1 –no-update
- composer remove vendor/package2 –no-update
- composer remove vendor/package3 –no-update
- composer update
这样只会执行一次依赖解析和文件操作,比每次删除都自动更新更快。
后续需要运行 update
只有在执行 composer update 后,Composer 才会真正:
- 从
vendor/删除相关文件 - 重新解析依赖关系
- 更新
composer.lock
基本上就这些。使用 --no-update 只是暂存更改,真正的清理要靠后续的 update。


