--dry-run 是 Composer 的试运行选项,能模拟安装或更新过程并输出操作预览,如添加包、升级版本、依赖冲突等,但不会实际修改 composer.json、composer.lock 或 vendor 目录。使用 composer require monolog/monolog --dry-run 可查看引入包的影响而不改变项目状态。适用于团队协作前验证依赖变更、CI/CD 调试及主版本升级前的兼容性测试,帮助提前发现潜在问题,避免“本地正常、上线报错”的情况。

在使用 Composer 时,--dry-run 是一个非常实用的选项,它能模拟安装或更新过程,让你预览将要发生的变化,而不会真正修改项目文件(如 composer.lock 或 vendor 目录)。
什么是 --dry-Run?
--dry-run 告诉 Composer 以“试运行”模式执行命令。它会输出 Composer 将会执行的操作,比如下载哪些包、升级哪个版本、是否冲突等,但不会实际写入任何更改。
如何使用 require --dry-run 模拟安装
假设你想安装 monolog/monolog,但不确定它会不会影响现有依赖:
- 运行命令:
composer require monolog/monolog --dry-run - Composer 会分析当前依赖,并输出类似以下信息:
- 将会添加 monolog/monolog: ^2.0
- 可能会更新 symfony/console(如果存在兼容性调整)
- 提示是否存在依赖冲突
- 这个过程中,composer.json 不会被修改,vendor 目录保持原样,lock 文件也不会更新
适用场景与建议
- 团队协作前验证:在提交新的依赖前,先用 --dry-run 确认影响范围
- CI/CD 流程调试:集成到自动化脚本中,提前发现依赖问题
- 升级主版本前测试:比如从 Laravel 9 升到 10,可先模拟 require 相关包看是否兼容
- 注意:--dry-run 不会检测所有运行时问题,仅反映依赖解析结果
基本上就这些。用好 --dry-run 能帮你避免很多“本地能跑,上线报错”的尴尬情况。










