composer remove --no-update 仅从 composer.json 中移除包而不更新依赖,保留 vendor 文件、不生成 autoload 文件,适用于批量操作后统一执行 composer update 完成变更。

在使用 Composer(PHP 的依赖管理工具)时,composer remove --no-update 是一条命令,用于从项目中移除某个已安装的包,但不会立即更新依赖关系或执行自动加载器的重新生成。
composer remove 做了什么?
当你运行 composer remove vendor/package,Composer 会:
- 从 composer.json 文件中的 require 或 require-dev 列表里删除指定的包
- 从项目目录的 vendor/ 中删除该包的文件
- 更新 composer.lock 文件,反映依赖的变化
- 重新生成自动加载器(autoload files)
--no-update 选项的作用
加上 --no-update 后,Composer 只会修改 composer.json,但不会执行实际的更新操作。这意味着:
- 指定的包仍保留在 vendor/ 目录中
- composer.lock 不会被更新
- 自动加载器也不会重新生成
- 依赖关系的解析被推迟到你手动运行 composer update 时
什么时候用 --no-update?
这个选项适合在批量操作时使用,比如你要同时添加、移除多个包,希望一次性完成所有更改后再统一更新依赖。例如:
composer remove foo/bar --no-update composer remove baz/qux --no-update composer require new/package --no-update composer update
这样可以减少重复的依赖解析过程,提升效率,也避免中间状态导致项目出错。
基本上就这些。用了 --no-update 就记得后续要运行 composer update 来完成实际的变更。










