Composer的dry-run模式通过--dry-run参数预览更新、安装或删除操作的影响,显示将要安装、升级、降级或移除的包,但不会实际修改composer.json、composer.lock或vendor目录。例如运行composer require monolog/monolog:2.0.0 --dry-run会模拟安装过程并展示依赖解析结果,结合-vvv选项可查看详细解析流程,帮助识别潜在冲突,适合在复杂依赖变更前验证影响范围,避免误操作。

Composer 的 dry-run 模式可以帮助你在实际执行安装或更新操作前,预览将要发生的变更。这样你可以确认哪些包会被安装、更新、回滚或删除,而不会对项目产生实际影响。
使用 --dry-run 参数预览变更
在运行 composer update 或 composer require 命令时,添加 --dry-run 选项即可启用试运行模式。
-
composer update --dry-run:预览更新操作的影响,显示哪些包会被升级、降级或卸载。 -
composer require vendor/package:1.2.3 --dry-run:查看添加某个包或指定版本时,会安装哪些依赖及其版本。 -
composer remove vendor/package --dry-run:检查删除某个包是否会连带移除其他依赖。
实际输出示例
当你运行:
composer require monolog/monolog:2.0.0 --dry-run
输出可能类似:
Loading composer repositories with package information Updating dependencies Package operations: 1 install, 0 updates, 0 removals - Installing monolog/monolog (2.0.0): Downloading [>------------------] 5%
这表示 Composer 将安装 monolog/monolog 2.0.0,但不会真正写入 composer.json 或下载文件。
结合 --verbose 查看更详细信息
加上 -v 或 -vvv 可以看到更详细的依赖解析过程:
composer update --dry-run -vvv
这有助于排查为什么某个包被升级或冲突无法解决。
注意事项
--dry-run 不会修改以下内容:
-
composer.lock文件 -
vendor/目录中的文件 - 本地的
composer.json(除非你手动保存更改)
它仅模拟依赖解析和下载流程,适合用于测试环境变更或团队协作前确认影响范围。
基本上就这些。使用 --dry-run 能帮你避免误操作,尤其是在处理复杂依赖时特别有用。不复杂但容易忽略。










