remove --dev 用于从 require-dev 中移除开发依赖,如 phpunit/phpunit;2. 它仅影响开发环境包,不触碰 require 中的运行时依赖;3. 操作包括更新 composer.lock 和删除无引用的本地文件;4. 适用于清理测试工具或代码检查库;5. 需注意确认包位置,避免误删,建议提交前检查 composer.json 变更。

在使用 Composer 管理 PHP 项目依赖时,"remove --dev" 参数用于从项目的 开发依赖(即 require-dev 部分)中精确卸载指定的包。它不会影响主依赖(require 中的包),确保只操作开发环境相关的库。
理解 require 和 require-dev 的区别
Composer 的 composer.json 文件支持两种依赖分类:
- require:项目运行所必需的依赖,例如框架、数据库组件等。
- require-dev:仅在开发或测试阶段需要的工具,如 PHPUnit、PHPStan、PHP-CS-Fixer 等。
使用 --dev 参数可以精准控制操作范围,避免误删运行时依赖。
remove --dev 的实际作用
执行以下命令:
composer remove --dev phpunit/phpunit会产生以下效果:
- 从
require-dev列表中移除phpunit/phpunit - 删除该包及其开发依赖的本地文件(如果不再被其他包引用)
- 更新
composer.lock文件,反映依赖变更 - 不会触碰
require中的任何包
何时使用 --dev 参数
在以下场景中推荐使用 --dev 明确指定操作目标:
- 项目重构后不再需要某个测试工具
- 更换代码质量检查工具(如从 PHP_CodeSniffer 换成 PHPStan)
- 清理临时添加用于调试的开发包
- 确保生产环境构建时不包含多余开发依赖
注意事项
执行时需注意:
- 如果不加
--dev,Composer 默认操作require,若包不在其中会报错 - 某些包可能同时出现在主依赖和开发依赖中,需确认具体位置
- 建议提交变更前检查
git diff composer.json,确认修改正确
基本上就这些。合理使用 remove --dev 能保持项目依赖清晰,避免冗余,提升维护效率。










