composer update –dry-run 能模拟依赖更新过程而不实际修改文件,帮助开发者提前发现主版本升级、大范围变更或废弃包等问题,确保部署时依赖变更可控,避免不兼容更新引发线上故障,同时验证 CI/CD 环境与预期一致,提升发布安全性。

composer update –dry-run 是部署前的好习惯,因为它能在不实际更改项目依赖的情况下,预演依赖更新的全过程,帮助开发者提前发现问题。
避免意外的依赖变更
执行 composer update –dry-run 会模拟一次完整的依赖更新,显示哪些包会被安装、升级或降级,但不会修改 composer.lock 或 vendor 目录。这让你在部署前清楚看到:
- 是否有主版本升级(可能带来不兼容变更)
- 是否有不必要的大范围更新
- 是否有废弃(deprecated)包被引入
提前发现这些变化,可以防止因自动升级导致的运行时错误。
验证 CI/CD 环境的一致性
在部署流程中,生产环境通常使用 composer install 来确保依赖与 composer.lock 一致。但在开发后期,若有人本地执行了 composer update,lock 文件可能已变更。
通过在 CI 脚本或部署前运行 –dry-run,可检查当前 composer.json 在无 lock 文件限制下会产生什么结果,确认是否符合预期。
降低线上故障风险
某些第三方包的小版本更新可能引入 bug 或性能问题。通过干跑更新,你可以结合 CHANGELOG 手动审查即将引入的版本。
例如:
composer update –dry-run
# 输出示例:
# Updating package foo/bar (v1.2.3 → v1.3.0)
看到这个输出后,你可以去查看 foo/bar 的 release notes,判断 v1.3.0 是否安全。
基本上就这些。用好 –dry-run,相当于给依赖更新加了一道安全闸门,简单却有效。


