--dry-run选项支持composer update、install、require和remove命令,用于预览操作而不实际修改文件;它输出依赖解析、包变更、脚本执行及lock文件重写等计划,但不执行任何写入。

Composer 的 --dry-run 选项用于在不实际修改项目文件的前提下,预览 composer update 或 composer install 将要执行的操作。它不会下载、安装或写入任何文件,仅输出将发生的变更,帮助你评估升级风险、确认依赖兼容性,或避免误操作。
哪些命令支持 --dry-run
该选项主要适用于以下命令:
-
composer update --dry-run:预览依赖更新计划(包括版本升降、包增删) -
composer install --dry-run:预览基于当前composer.lock的安装动作(如缺失包补装、脚本是否运行) -
composer require --dry-run和composer remove --dry-run:预览新增或移除包的影响
注意:composer dump-autoload 等不涉及依赖解析的命令不支持此选项。
--dry-run 输出的关键信息解读
运行后你会看到类似这样的结构化输出:
- Resolving dependencies:显示依赖解析过程,包括冲突提示(如有)
- Installing/Updating/Removing packages:列出将被安装、升级或卸载的包及其版本号
-
Executing scripts:标明是否计划运行
post-install-cmd等脚本(但不会真正执行) -
Writing lock file:提示
composer.lock将被重写(但实际不保存)
若输出中出现 Skipped 或 Nothing to install or update,说明当前锁文件已满足要求,无需变更。
实用建议与注意事项
使用 --dry-run 是安全更新前的重要习惯,但需注意几点:
- 它依赖当前
composer.json和composer.lock状态,确保两者一致再运行 - 不会检测本地环境差异(如 PHP 版本、扩展缺失),这些仍需人工核对
platform配置 - 若想更精细控制,可搭配
--with-dependencies或--no-dev等选项一起使用 - CI/CD 流程中可用
--dry-run做前置检查,配合grep判断是否有预期外的降级或大版本变更
不复杂但容易忽略。










